ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

DataSnap delphi 2010 metodo http

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
joscru01
Novato
Novato


Registrado: Quarta-Feira, 1 de Julho de 2009
Mensagens: 87
Localização: Uiraúna-PB

MensagemEnviada: Seg Fev 25, 2013 1:05 am    Assunto: DataSnap delphi 2010 metodo http Responder com Citação

colegas tenho um servidor e um cliente DataSnap a miha maquina com os seguintes metodos

No servidor

1 function Banco: TJSONArray;
2 function ConsultaBanco(pID : integer):TJSONArray;
3 function AcceptBanco(pBanco: TJSONValue): Boolean;
4 function UpdateBanco(pBanco: TJSONValue): Boolean;


No cliente chamado o metodo 1(Funciona)Testado

url = 'http://localhost:1050/datasnap/rest/TServerMethods1/Banco/';
http.Get(url + Trim(Edit1.Text), StreamRetorno);

No cliente chamado o metodo 2(Funciona) Testado

url = 'http://localhost:1050/datasnap/rest/TserverMethods1/ConsultaBanco/';
http.Get(url + Trim(Edit1.Text), StreamRetorno);

Não sei como chamar os metodos 3(Insert) 4(Update)

alguem poderia mim dá uma ajuda de como chamar estes metodos no servidor.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
drgarcia1986
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 27 de Novembro de 2009
Mensagens: 211
Localização: São Paulo

MensagemEnviada: Ter Out 01, 2013 3:30 pm    Assunto: Responder com Citação

amigo, para o Update use o método http.post para o Accept use o http.put

[]'s
_________________
http://drgarcia1986.wordpress.com
https://github.com/drgarcia1986
http://twitter.com/drgarcia1986
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
renan.sanches
Novato
Novato


Registrado: Segunda-Feira, 4 de Abril de 2011
Mensagens: 59

MensagemEnviada: Seg Out 14, 2013 8:30 am    Assunto: Responder com Citação

Conseguiu resolver???

Não estou conseguindo fazer o comando POST num servidor datasnap REST.

o método no servidor é esse:
procedure comandoPOST(const aName: string;jObject: TJSONObject);


E no cliente:

Código:

procedure TFMenu.Button4Click(Sender: TObject);
Var
  http: TIdHttp;
  jsonToSend: TStringList;
Begin
  http := TIdHttp.Create(nil);
  http.HandleRedirects := True;
  http.ReadTimeout := 5000;
  http.Request.ContentType := 'application/json';
  jsonToSend := TStringList.Create();
  jsonToSend.Text := '{"name":"RENAN"}';
  http.Post(URL+'comandoPOST', jsonToSend));
  jsonToSend.free;
  http.free;
end;



Aparece: 500 - Internal Server Error

Como posso resolver??
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
drgarcia1986
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 27 de Novembro de 2009
Mensagens: 211
Localização: São Paulo

MensagemEnviada: Seg Out 14, 2013 10:13 am    Assunto: Responder com Citação

Renan, para um método ser acessado via método POST em um servidor DataSnap, ele deve começar no nome com Update, exemplo:

procedure UpdateComandoPOST(const aName: string;jObject: TJSONObject);
_________________
http://drgarcia1986.wordpress.com
https://github.com/drgarcia1986
http://twitter.com/drgarcia1986
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
renan.sanches
Novato
Novato


Registrado: Segunda-Feira, 4 de Abril de 2011
Mensagens: 59

MensagemEnviada: Seg Out 14, 2013 2:28 pm    Assunto: Responder com Citação

Sua dica me ajudou, mas ainda tinha outro problema.
Segue o código funcionando:

Método no servidor:
Código:
 procedure UpdatecomandoPOST(Parametro: TJsonObject);


Médodo no cliente:

Código:


procedure TForm2.Button4Click(Sender: TObject);
var
   lJSO : String;
   jsonToSend: TStringStream;
begin
  lJSO     := ('{"name":"Renan"}');
  jsonToSend := TStringStream.Create(lJSO,TEncoding.UTF8);   // or ASCII
  IdHTTP.Request.ContentType := 'application/json';
  jsonToSend := IdHTTP.Post('http://localhost:8080/datasnap/rest/TServerMethods1/comandoPOST',jsonToSend);
  jsonToSend.Free;
end;



Valeu =)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB