Soap com webservice wsdl
17/04/2014
0
Estou tentando executar via soap umas funções que estão em um webservice wsdl. A autenticação desse ws fica no header. Já tentei de várias formas e maneiras, utilizando vários exemplos da web mas não funciona.
O xml deve ser enviado em um formato específico, conforme mostro abaixo:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/"> <soap:Header> <tem:Autenticacao> <tem:Login>xxxxx</tem:Login> <tem:Senha>xxxxx</tem:Senha> <tem:Codigo>x</tem:Codigo> </tem:Autenticacao> </soap:Header> <soap:Body> <tem:RecuperarAgenda> <tem:CODIGO_CFC>2</tem:CODIGO_CFC> <tem:DATA>27/03/2014</tem:DATA> </tem:RecuperarAgenda> </soap:Body> </soap:Envelope>
E este é o código(uma das formas) que estou tentando utilizar no delphi:
procedure TForm2.Button4Click(Sender: TObject); var Rio : THTTPRIO; autent: Autenticacao; begin Rio := THttpRIO.Create(nil); autent := Autenticacao.Create; autent.Login := 'xxxxx'; autent.Senha := 'xxxxx'; autent.Codigo := 'x'; Rio.SOAPHeaders.Send(autent); resultado := GetIntegracaoCadastroHttpGet.RecuperarAgenda('27/03/2014'); ShowMessage(resultado); end;
Sempre recebo o retorno: "server did not recognize the value of http header soapaction", como se eu não estivesse enviando o header.
Agradeço se alguém puder me ajudar.
Obrigado desde já.
Henry Maltz
Posts
30/04/2014
Gledstonprego
assim:
coloque dois memos e declare em uses XmlDoc
procedure TForm1.HTTPRIO1BeforeExecute(const MethodName: String;
var SOAPRequest: WideString);
var xml : TStringlist;
begin
xml := TStringlist.create;
try
mmRequest.Text:= SOAPRequest;
finally
xml.Free;
end;
end;
e na recepção:
procedure TForm1.HTTPRIO1AfterExecute(const MethodName: String;
SOAPResponse: TStream);
var xml : TStringlist;
begin
xml := TStringlist.create;
try
soapresponse.Position:=0;
xml.LoadFromStream(SOAPResponse);
mmResponse.Text:= xmlDoc.FormatXMLData(xml.Text);
finally
xml.Free;
end;
end;
30/04/2014
Henry Maltz
Te agradeço muito pela ajuda... Eu já resolvi o problema. Na realidade, o problema era que o usuário que a empresa criou tinha erro e não funcionava. Só fui descobrir isso pq eles limparam a base, dai ele me deu outro usuário e simplesmente passou a funcionar.
Mas novamente te agradeço, pois na época eu postei em 3 sites de fórum diferentes e não recebi nenhum retorno.
Um abraço.
06/07/2014
Marcos Cruz
estou fazendo integração com empresa de enviar sms, ate ja envia o problema e retorno por exemplo consultar sms lidos, respondidos e que retorno nao retorna so variável ele retorna tipo Dataset e nao e como eu leu isso? alguem sabe?
segue links
http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?WSDL
http://webservices.twwwireless.com.br/reluzcap/
função é a StatusSMSNaoLido
quero pegar esse retorno que é dataset e abrir no clientdataset alguem sabe?
06/07/2014
Marcos Cruz
estou fazendo integração com empresa de enviar sms, ate ja envia o problema e retorno por exemplo consultar sms lidos, respondidos e que retorno nao retorna so variável ele retorna tipo Dataset e nao e como eu leu isso? alguem sabe?
segue links
http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?WSDL
http://webservices.twwwireless.com.br/reluzcap/
função é a StatusSMSNaoLido
quero pegar esse retorno que é dataset e abrir no clientdataset alguem sabe?
Clique aqui para fazer login e interagir na Comunidade :)