Ir para conteúdo

POWERED BY:

Arquivado

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

Alan_Mackey

Conectar WEBSERVICE que não aceita SOAP30

Recommended Posts

Olá pessoal, estou com dificuldades p/ conectar em um Webservice, sempre fiz a conexão via SOAP30, mas o webservice não suporta esse tipo de conexão(informação passada pelo técnico do cliente), assim preciso achar alguma outra forma, eu tenho o arquivo WSDL local, ele não está disponível para acesso via browser, estou tentando através da função abaixo, mas não completa a conexão:

"Código do site http://www.freevbcode.com/ShowCode.asp?ID=7611"(fazendo os créditos)

Public Function PostWebservice(ByVal AsmxUrl As String, ByVal SoapActionUrl As String, ByVal XmlBody As String) As String
Dim objDom As Object
Dim objXmlHttp As Object
Dim strRet As String
Dim intPos1 As Integer
Dim intPos2 As Integer

On Error GoTo Err_PW

' Create objects to DOMDocument and XMLHTTP
Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")

' Load XML
objDom.async = False
objDom.LoadXml XmlBody

' Open the webservice
objXmlHttp.Open "POST", AsmxUrl, False

' Create headings
objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
'objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
objXmlHttp.setRequestHeader "SOAPAction", SoapActionUrl

' Send XML command
objXmlHttp.Send objDom.XML

' Get all response text from webservice
strRet = objXmlHttp.responseText

' Close object
Set objXmlHttp = Nothing

' Extract result
intPos1 = InStr(strRet, "Result>") + 7
intPos2 = InStr(strRet, "</")
If intPos1 > 7 And intPos2 > 0 Then
strRet = Mid(strRet, intPos1, intPos2 - intPos1)
End If

' Return result
PostWebservice = strRet

Exit Function
Err_PW:
PostWebservice = "Error: " & Err.Number & " - " & Err.Description

End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei exatamente como conseguir as informações necessárias à este acesso, consegui uma informação que pode ser de alguma ajuda, mas não sei como utilizar:

1 - o webservice utiliza padrão de segurança WS-Security, seção Username Token Profile.

- vou colar aqui o conteudo do WSDL que eles me enviaram para o desenvolvimento, não sei até que ponto isso pode me ajudar.

 

 

<wsdl:definitions name="IntgAssessoriaCobranca"
<wsp:Policy wsu:Id="wss_username_token_service_policy"
<sp:SupportingTokens
<wsp:Policy>
<sp:UsernameToken
<wsp:Policy>
<sp:WssUsernameToken10 />
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SupportingTokens>
</wsp:Policy>
<wsdl:types>
<xsd:schema elementFormDefault="qualified"
<xsd:import
schemaLocation="PernambucanasFault.xsd" />
<xsd:import
schemaLocation="SimularAcordoPagamentoReqEBM.xsd" />
<xsd:import
schemaLocation="SimularAcordoPagamentoRespEBM.xsd" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="SimularAcordoPagamentoRequestMessage">
<wsdl:part name="parameters" element="WL5G3N1:simularAcordoPagamentoReqEBM" />
</wsdl:message>
<wsdl:message name="SimularAcordoPagamentoResponseMessage">
<wsdl:part name="parameters" element="WL5G3N1:simularAcordoPagamentoRespEBM" />
</wsdl:message>
<wsdl:message name="PernambucanasFaultMessage">
<wsdl:part name="parameters" element="WL5G3N2:PernambucanasFault" />
</wsdl:message>
<wsdl:portType name="IntgAssessoriaCobrancaPort">
<wsdl:operation name="simularAcordoPagamento">
<wsdl:input name="SimularAcordoPagamentoRequest"
message="WL5G3N3:SimularAcordoPagamentoRequestMessage" />
<wsdl:output name="SimularAcordoPagamentoResponse"
message="WL5G3N3:SimularAcordoPagamentoResponseMessage" />
<wsdl:fault name="PernambucanasFault" message="WL5G3N3:PernambucanasFaultMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="IntgAssessoriaCobrancaSOAP" type="WL5G3N3:IntgAssessoriaCobrancaPort">
<WL5G3N4:binding style="document"
<wsp:PolicyReference URI="#wss_username_token_service_policy"
wsdl:required="false" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" />
<wsdl:operation name="simularAcordoPagamento">
<WL5G3N4:operation
<wsdl:input name="SimularAcordoPagamentoRequest">
<WL5G3N4:body use="literal" />
</wsdl:input>
<wsdl:output name="SimularAcordoPagamentoResponse">
<WL5G3N4:body use="literal" />
</wsdl:output>
<wsdl:fault name="PernambucanasFault">
<WL5G3N4:fault name="PernambucanasFault" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="IntgAssessoriaCobrancaService">
<wsdl:port name="IntgAssessoriaCobrancaSOAP" binding="WL5G3N3:IntgAssessoriaCobrancaSOAP">
<WL5G3N4:address
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

 

 


Não sei exatamente como conseguir as informações necessárias à este acesso, consegui uma informação que pode ser de alguma ajuda, mas não sei como utilizar:

1 - o webservice utiliza padrão de segurança WS-Security, seção Username Token Profile.

- vou colar aqui o conteudo do WSDL que eles me enviaram para o desenvolvimento, não sei até que ponto isso pode me ajudar.

 

 

<wsdl:definitions name="IntgAssessoriaCobranca"
<wsp:Policy wsu:Id="wss_username_token_service_policy"
<sp:SupportingTokens
xmlns:sp="

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.