Problemas em conectar dispositivo android no servidor Datasnap

16/07/2014

78

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

Responder

Post mais votado

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.

Leonardo Costa

Leonardo Costa
Responder

Mais Posts

24/07/2014

Douglas Lucio

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

No aguardo.
Responder

24/07/2014

Fabiano Carvalho

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.
Responder

24/07/2014

Douglas Lucio

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
Responder

11/08/2014

Douglas Lucio

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
Responder

22/09/2014

Douglas Lucio

Boa noite Leonardo,

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

No aguardo
Responder

23/09/2014

Douglas Lucio

Leonardo, poderia me enviar o exemplo que voce tem para que eu possa verificar?
Abraços
Responder

18/12/2016

Carlos Faria

???

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

19/12/2016

Jones Granatyr

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

http://www.devmedia.com.br/como-depurar-aplicacoes-datasnap/37277
Responder

21/08/2018

Flávio Machado

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/ "
Responder

31/08/2018

Luis Antonio

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 />
Responder

22/01/2019

Cristiano Massaroli

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 />
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar