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.
try { //Faz a requisicao a url montada acima. using (var resp = WebRequest.Create(url).GetResponse()) { var reader = new StreamReader(resp.GetResponseStream()); result = reader.ReadToEnd(); } } catch { thrownew Exception("Ocorreu um erro!"); }
return result; }
Método responsável por fazer a validação dos dados antes de realizar a solicitação no servidor.
1 2 3 4 5 6 7 8 9 10 11
privateboolValidacao() { if (TxtCPF.Text.Trim() == string.Empty) { MessageBox.Show("Digite um CPF!"); TxtCPF.Focus(); returnfalse; }
returntrue; }
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.
privatevoidBtnValidar_Click(object sender, EventArgs e) { //Verifica se o campo CPF foi digitado. if (!Validacao()) return;
//Caminho do servidor de aplicacao. conststring servidor = @"http://localhost:8081/datasnap/rest/";
//Metodo que sera consumido. conststring metodo = @"TServerFunctions/validateCPF/";
//Parametros do metodo. var parametro = TxtCPF.Text.Trim();
//URL que sera processada. var url = string.Format("{0}{1}{2}", servidor, metodo, parametro);
string pagina; try { //Faz a requisicao a url montada acima. pagina = HttpGet(url); } catch (Exception ex) { MessageBox.Show(ex.Message);
return; }
//Verifica se o metodo retornou algum valor. if (pagina == null) return;
//Le os dados de retorno do servidor passando para JSON. var obj = JObject.Parse(pagina);
//Verifica o retorno do metodo. //E mostra para o usuario. var array = (JArray)obj["result"]; if ((bool)array[0]) MessageBox.Show(@"CPF valido!"); else MessageBox.Show(@"CPF invalido!"); }
Este foi mais um post de integração usando DataSnap espero que tenham gostado.