Problema com cabeçalho SOAP
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
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
Curtidas 0
Respostas
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
31/07/2013
Obrigado pela resposta.
Vou testar com o Delphi XE2 e vou ver se corrige.
Vou testar com o Delphi XE2 e vou ver se corrige.
GOSTEI 0
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.
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
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
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
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.
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
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
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?
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
31/07/2013
Olá pessoal estou com o mesmo problema de invalid user no delphi xe3 alguém conseguiu resolver?
GOSTEI 0
Fabiane
31/07/2013
Alguém conseguiu resolver?
GOSTEI 0