Júnior Oliveira

C Sharp; Delphi; ASP .NET; PHP; Javascript;

Consumindo DataSnap Server com C#

01 Apr 2011 csharp, delphi, datasnap, json

Olá pessoal, mais um post sobre DataSnap com Delphi XE, agora eu vou demonstrar como consumir um método em um servidor DataSnap a partir de um cliente em C#.

Segue o código do nosso método responsável por fazer a requisição no servidor.

 1 private static string HttpGet(string url)
 2 {
 3     string result;
 4 
 5     try
 6     {
 7         //Faz a requisicao a url montada acima.
 8         using (var resp = WebRequest.Create(url).GetResponse())
 9         {
10             var reader = new StreamReader(resp.GetResponseStream());
11             result = reader.ReadToEnd();
12         }
13     }
14     catch
15     {
16         throw new Exception("Ocorreu um erro!");
17     }
18 
19     return result;
20 }

Método responsável por fazer a validação dos dados antes de realizar a solicitação no servidor.

 1 private bool Validacao()
 2 {
 3     if (TxtCPF.Text.Trim() == string.Empty)
 4     {
 5         MessageBox.Show("Digite um CPF!");
 6         TxtCPF.Focus();
 7         return false;
 8     }
 9 
10     return true;
11 }

Método principal da aplicação. Note que estou utilizando uma classe chamada JObject para fazer a conversão dos dados de retorno do servidor para um objeto em JSON, está classe está contida na Class Library Newtonsoft.Json.dll para trabalhar com dados em JSON. Segue o link do projeto para download Json.NET. Estou utilizando está classe pois achei bem simples a forma de utilização.

 1 private void BtnValidar_Click(object sender, EventArgs e)
 2 {
 3     //Verifica se o campo CPF foi digitado.
 4     if (!Validacao()) return;
 5 
 6     //Caminho do servidor de aplicacao.
 7     const string servidor = @"http://localhost:8081/datasnap/rest/";
 8 
 9     //Metodo que sera consumido.
10     const string metodo = @"TServerFunctions/validateCPF/";
11 
12     //Parametros do metodo.
13     var parametro = TxtCPF.Text.Trim();
14 
15     //URL que sera processada.
16     var url = string.Format("{0}{1}{2}", servidor, metodo, parametro);
17 
18     string pagina;
19     try
20     {
21         //Faz a requisicao a url montada acima.
22         pagina = HttpGet(url);
23     }
24     catch (Exception ex)
25     {
26         MessageBox.Show(ex.Message);
27 
28         return;
29     }
30 
31     //Verifica se o metodo retornou algum valor.
32     if (pagina == null) return;
33 
34     //Le os dados de retorno do servidor passando para JSON.
35     var obj = JObject.Parse(pagina);
36 
37     //Verifica o retorno do metodo. 
38     //E mostra para o usuario.
39     var array = (JArray)obj["result"];
40     if ((bool)array[0])
41         MessageBox.Show(@"CPF valido!");
42     else
43         MessageBox.Show(@"CPF invalido!");
44 }

Este foi mais um post de integração usando DataSnap espero que tenham gostado.