Problemas em conectar dispositivo android no servidor Datasnap

Delphi

16/07/2014

Amigos Boa Tarde

Estou com problemas em fazer uma aplicação android se comunicar com o servidor Datasnap.
Estou tentando fazer a aplicacao android fazer logon em um banco de dados atraves do servidor DataSnap, porém quando tento a conexão no dispositivo android aparece o erro HTTP/1.1 500 Internal Server Error.

Abaixo segue a função que esta no servidor DataSnap
function TSM.ValidaUsuario(Usuario : TJsonObject): String;
var
  Par : TJSonPair;
begin
  Par := TJsonPair.Create;
  //login
  par := Usuario.Get(0);
  lusuario := Par.JsonValue.Value;
  //senha
  Par := usuario.Get(1);
  lsenha := par.JsonValue.Value;


  dm.Qry.Close;
  dm.Qry.Params[00].AsString := lUsuario;
  dm.Qry.Params[01].AsString := uCript.Criptografa(lSenha,108);
  dm.Qry.Open;

  if dm.Qry.IsEmpty  = true then begin
    result := 'No!';
  end else begin
    result := 'OK!';
  end;


end;


Abaixo segue o codigo que estou executando no dispositivo android.

procedure TfPrincipal.BtnConfirmarClick(Sender: TObject);
var
  Contato : TJsonObject;
  lJSO : String;
  jSontoSend : TStringStream;
  lResponse : String;
begin

  if trim(edlogin.Text) = '' then begin
    Showmessage('Campo login em branco, por favor preencha');
    exit;
  end;

  if trim(edsenha.Text) = '' then begin
    Showmessage('Campo Senha em branco, por favor preencha');
    exit;
  end;

  Contato := TJsonObject.Create;
  Contato.AddPair('login',TJsonString.Create(trim(edlogin.Text)));
  Contato.AddPair('senha',TJsonString.Create(trim(edlogin.Text)));

  lJSO := Contato.ToString;
  jSontoSend := tStringStream.Create(lJSO,TEncoding.ASCII);
  IdHTTP.Request.ContentType := 'application/json';
  lResponse := IdHTTP.Post(URL+Path+'ValidaUsuario',jSontosend);
  jSonToSend.Free;

  ShowMessage (lresponse);


end;


Notem que estou tentando somente pegar o retorno da função via DataSnap conforme o trecho "ShowMessage (lresponse);" mas pelo que eu estou percebendo ele nem esta chegando a executar a função.

Poderiam me ajudar?

Obrigado.
Douglas Lucio

Douglas Lucio

Curtidas 0

Melhor post

Leonardo Costa

Leonardo Costa

22/09/2014

Douglas, você percebeu que nesta parte do código

  Contato := TJsonObject.Create;
  Contato.AddPair('login',TJsonString.Create(trim(edlogin.Text)));
  Contato.AddPair('senha',TJsonString.Create(trim(edlogin.Text)));


você esta passando o edlogin.Text tanto no login quanto na senha????

corrige e testa novamente, caso de errado te envio um exemplo que tenho aqui.
GOSTEI 1

Mais Respostas

Douglas Lucio

Douglas Lucio

16/07/2014

Alguém teria uma ideia, do problema com esta aplicação?

No aguardo.
GOSTEI 0
Fabiano Carvalho

Fabiano Carvalho

16/07/2014

Não conheço nada sobre delphi, mas veja sobre o erro 500, parece que é erro do servidor e não da aplicação android.

Erro 500

Posso te ajudar somente nisso.
GOSTEI 0
Douglas Lucio

Douglas Lucio

16/07/2014

Certo amigo, vou dar uma pesquisada, é que pelo browser eu ate consigo acessar o servidor datasnap, mas na aplicacao da este erro, mas vou verificar melhor então.
Muito obrigado pela atenção amigo...
Grande Abraço
GOSTEI 0
Douglas Lucio

Douglas Lucio

16/07/2014

Boa Noite amigos,

Verifiquei sobre a questão do servidor do datasnap, porem esta acessando normalmente pelo browser, mas a aplicação continua a dar este erro, sera que alguém poderia postar um exemplo de código de validação de usuário no banco de dados no android via datasnap?

No aguardo
GOSTEI 0
Douglas Lucio

Douglas Lucio

16/07/2014

Boa noite Leonardo,

Bem observado amigo, porem o erro ainda persiste.
Poderia me ajudar?

No aguardo
GOSTEI 0
Douglas Lucio

Douglas Lucio

16/07/2014

Leonardo, poderia me enviar o exemplo que voce tem para que eu possa verificar?
Abraços
GOSTEI 0
Carlos Faria

Carlos Faria

16/07/2014

???

Tambem preciso resolver esse mesmo erro urgente. já varri todos os foruns e nada até agora !
GOSTEI 0
Jones Granatyr

Jones Granatyr

16/07/2014

Olá! A melhor maneira é você tentar fazer um debug com dois Delphi abertos, para tentar encontrar onde o erro está acontecendo. O ruim de trabalhar com um Delphi só aberto é que erros de conexão/sql não são mostrados! Veja esse artigo para mais detalhes

https://www.devmedia.com.br/como-depurar-aplicacoes-datasnap/37277
GOSTEI 1
Flávio Machado

Flávio Machado

16/07/2014

HTTP/1.1 500 Internal Server Error. com certeza é erro do lado do Servidor, usa Postman para verificar seus ServerMethods e quando for testar usa o nome da classe tipo "..TServer/EchoString/ "
GOSTEI 0
Luis Antonio

Luis Antonio

16/07/2014

Estava com um problema parecido, adicionei as USES em ServerMethods :<br />
FireDAC.Stan.StorageJSON, FireDAC.Stan.StorageBin; <br />
Consegui ajustar o erro.<br />
Minha function recebe um arquivo TFDJSONDataSets, o erro (HTTP/1.1 500 Internal Server Error) apareceu do lado do webservice.<br />
<br />
GOSTEI 0
Cristiano Massaroli

Cristiano Massaroli

16/07/2014

Pessoal, estou tendo este mesmo problema em Delphi, mas utilizando application/xml<br />
<br />
Uso os mesmos parâmetros utilizando PostMan e está funcional.<br />
<br />
Será o meu programa?<br />
<br />
GOSTEI 0
POSTAR