Problema com cabeçalho SOAP

Delphi

31/07/2013

Bom dia,

O problema que estou tendo no Delphi 2009 é o seguinte: faço a importação do wsdl do webservice do Horus do Ministério da Saúde(http://aplicacao-homologacao.saude.gov.br/horus-ws-basico/RecebeDadosWS?wsdl), executo o método da unit criada, mas o envelope soap que o delphi cria possui tags não aceitas pelo webservice, como por exemplo, ele cria <SOAP-ENV:Envelope> ao invés de <soapenv:Envelope>.
Acredito que isto deve ser alguma propriedade do componente THTTPRIO. Alguem sabe como modificar isto?

Grato pela atenção
Teí Sistemas

Teí Sistemas

Curtidas 0

Respostas

Rodolpho Silva

Rodolpho Silva

31/07/2013

É bem provável que esse WSDL esteja usando a versão 1.2 do SOAP. Se eu não estiver enganado, a versão 1.2 do SOAP foi implementada a partir do DelphiXE.
GOSTEI 0
Teí Sistemas

Teí Sistemas

31/07/2013

Obrigado pela resposta.

Vou testar com o Delphi XE2 e vou ver se corrige.
GOSTEI 0
Edmilson Mattos

Edmilson Mattos

31/07/2013

Luciano Fisher estou tentando consumir os Webservices Soap horus-ws-basico mais estou encontrando o mesmo problema que vcs argumentaram no forum "Invalid User" da active delphi gostaria de saber se vc conseguiu fazer funcionar o envio através do delphi7? Poderia postar um exemplo funcionando do envolope e XML(Base64) funcionando se vc conseguiu? Ou pelo menos alguma dica de como fazer? nos meus testes aqui pelo SoapUI só retorna "Invalid-User" segue abaixo o meu Xml e envelop se conseguir dar uma olhadinha fico agradecido.

Envio:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hor="http://www.saude.gov.br/horus-ws-basico">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>edmilsoncesarmattos@gmail.com</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">eddydata</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<hor:recebeDados>
<source>#&*&(&(&(&(&#(&#&(&#(#&(&#(&#(&(# -- Não coloquei o source pq é grande</source>
</hor:recebeDados>
</soapenv:Body>
</soapenv:Envelope>

Retorno
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Invalid User</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

Desde de ja agradeço qualquer ajuda.
GOSTEI 0
Thiago Costa

Thiago Costa

31/07/2013

Cara..
Usei exatamente sua requisicao SOAP e funcionou normalmente..
Possivelmente seu usuario esta errado mesmo 'InvalidUser' --> Entre no Site do portal e tente logar....

E nao esquece de mandar o <source>?</source> com conteudo BASE64 se nao da erro
GOSTEI 0
William Fischer

William Fischer

31/07/2013

Pessoal, estou tendo o mesmo problema relatado pelo Edmilson Mattos...

Quando envio o xml me retorna o erro de 'InvalidUser', mas quando acesso o portal do SCPA estou conseguindo logar normalmente e lá consta que o meu usuário está autorizado para o sistema HÓRUS WEBSERVICE - BÁSICO.

Gostaria de saber se foi resolvido este problema? E caso tenham conseguido qual foi a solução?

Desde já agradaço qualquer ajuda.
GOSTEI 0
Edmilson Mattos

Edmilson Mattos

31/07/2013

Pessoal para quem ainda ta com problema na comunicação!!! Para funcionar esse invalid user que ele retorna tem que alterar a requisicao soap que é gerado no Thttprio no evento onbeforeexecute com uma requisiçao soap valida. Bom na verdade vc tem de usar para fazer a comunicação um componente modificado httpriodn pois o httprio que vem no D7 tem um problema com o retorno da requisicao que não atribui o valor de retorno a propriedade do componente e isto causa varios erros de comunicação. Só assim na epoca consegui fazer funcionar!!!
GOSTEI 0
Cleber Lino

Cleber Lino

31/07/2013

Olá..

Por favor...


Qual o algorítimo de criptografia que eu uso para criptografar o conteúdo e qual a chave de criptografia?
GOSTEI 0
Ricardo Giasson

Ricardo Giasson

31/07/2013

Olá pessoal estou com o mesmo problema de invalid user no delphi xe3 alguém conseguiu resolver?
GOSTEI 0
Fabiane

Fabiane

31/07/2013

Alguém conseguiu resolver?
GOSTEI 0
POSTAR