Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AUTOMACAO

Erro DataSnap com Indy - Delphi XE7

Recommended Posts

Fiz uma aplicacao servidora que chamando os metodos pelo browse, funciona tudo perfeito,

mas pra testar meus metodos construi um cliente usando TdHTTP o e chamo os metodos da seguinte forma:

procedure TF_CLIENTE.SBEnviar2Click(Sender: TObject);

var Url : String;
lJSO : String;
jsonToSend : TStringStream;
begin
lJSO := ('{"name":"TESTE"}');
jsonToSend := TStringStream.Create(lJSO,TEncoding.UTF8);
idHttp.ProxyParams.Clear;
idHttp.ProxyParams.BasicAuthentication := false;
idHttp.Request.BasicAuthentication := True;
idHttp.Request.Accept := 'text/javascript';
IdHTTP.Request.ContentType := 'application/json';
IdHTTP.Request.ContentEncoding := 'utf-8';
idHttp.Request.Method := 'POST';
IdHTTP.Request.BasicAuthentication := True;
IdHTTP.Request.Authentication := TIdBasicAuthentication.Create;
IdHttp.Request.Authentication.Username := 'USUARIO';
IdHttp.Request.Authentication.password := 'SENHA';
IdHttp.Request.ContentLength := Length(lJSO);
try
Memo1.Text := idHttp.Post(Url,jsonToSend);
except
on E : Exception do
begin
Memo1.Lines.Add('Exception class name = '+E.ClassName);
Memo1.Lines.Add('Exception message = '+E.Message);
end;
end;
end;

Já Liberei o Dispatch:

 

procedure TF_WebModule.WebModuleBeforeDispatch(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.SetCustomHeader('access-control-allow-origin','*');
Response.SetCustomHeader('access-control-allow-Methods','PUT, POST, GET, DELETE');
Response.SetCustomHeader('access-control-allow-Headers','accept, authorization, origin');
if FServerFunctionInvokerAction <> nil then
FServerFunctionInvokerAction.Enabled := AllowServerFunctionInvoker;

 

end;

 

Já Validei o usuario e vem a autenticacao certinho do indy:

 

procedure TF_WebModule.DSAuthenticationManager1UserAuthenticate(Sender: TObject;
const Protocol, Context, User, Password: string; var valid: Boolean;
UserRoles: TStrings);
begin
if Request.Method = 'OPTIONS' then
valid := False
else
if ((User = 'USUARIO') and (Password = 'SENHA')) then
valid := True
else
valid := False;

 

end;

ele apresenta um erro:

Exception class name = EIdHTTPProtocolException

Exception message = HTTP/1.1 500 Internal Server Error

 

pesquisei na net e nao consegui tirar minha duvida, se alguem puder ajudar agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.