Olá pessoal, estou tentando consumir uma webservice passando parâmetro e não estou conseguindo obter um resultado no retorno. Alguém poderia me dizer onde estou errando, agredito que seja na variável sResultado, que se refere a uma variável de retorno. Logo abaixo desse código tem um exemplo no VB.NET e eu gostaria de aplicar no VB6, agradeço ajuda.
Private Sub Command1_Click()
Dim strSoapAction As String
Dim strUrl As String
Dim strXml As String
Dim sNFnumero As String
Dim iNFmodelo As Integer
Dim sNFserie As String
Dim sNFemissao As String
Dim dFvalor As Double
Dim sCNPJfornecedor As String
Dim sCNPJorgao As String
Dim sResultado As String
Dim sResultadoDesc As String
sNFnumero = "000035"
nNFmodelo = 1
sNFserie = "A"
sNFemissao = "15/2/2008"
sNFvalor = 16250
sCNPJfornecedor = "06556003000192"
sCNPJorgao = "08096570000139"
sResultado = ""
sResultadoDesc = ""
txtOutput.Text = ""
strUrl = "http://www.set.rn.gov.br/compralegal/wscompralegal/service.asmx"
strSoapAction = "http://www.set.rn.gov.br/compralegal/wscompralegal/LerChaveAutenticadora"
strXml = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & _
"<soap:Body>" & _
"<LerChaveAutenticadora xmlns=""http://www.set.rn.gov.br/compralegal/wscompralegal"">" & _
"<strNfnumero>" & sNFnumero & "</strNfnumero>" & _
"<intNfmodelo>" & nNFmodelo & "</intNfmodelo>" & _
"<strNfserie>" & sNFserie & "</strNfserie>" & _
"<dtNfemissao>" & sNFemissao & "</dtNfemissao>" & _
"<dblNfvalortotal>" & sNFvalor & "</dblNfvalortotal>" & _
"<strCnpjfornecedor>" & sCNPJfornecedor & "</strCnpjfornecedor>" & _
"<strCnpjorgaopublico>" & sCNPJorgao & "</strCnpjorgaopublico>" & _
"<strResultado>" & sResultado & "</strResultado>" & _
"<strResultadoDesc>" & sResultadoDesc & "</strResultadoDesc>" & _
"</LerChaveAutenticadora>" & _
"</soap:Body>" & _
"</soap:Envelope>"
txtOutput.Text = PostWebservice(strUrl, strSoapAction, strXml)
End Sub
Private 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 "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
EXEMPLO NO VB.NET
'Declara um objeto do webservice:
Dim ws As New wsCompralegal.Service()
'Declara a variável que receberá o retorno do serviço, ou seja, o autenticador:
Dim strAutenticador As String = String.Empty
'Declara as duas variáveis de tratamento dos resultados do serviços:
Dim enResultado As wsCompralegal.RESULTADO
Dim strResultadoDescricao As String = ""
Try
'Chama o serviço e armazena os resultados nas variáveis de saída,
'além do retorno armazenado em strAutenticador:
strAutenticador = ws.LerChaveAutenticadora("000035", 1, "A", "15/2/2008", 16250, _
"06556003000192", "08096570000139", enResultado, strResultadoDescricao)
'Testa se o resultado foi OK (NF encontrada). Se encontrou imprime; senão, lança uma exceção:
If Not enResultado = wsCompralegal.RESULTADO.OK Then
Throw New Exception(String.Format("{0} - {1}", enResultado, strResultadoDescricao))
End If
Console.WriteLine("strAutenticador: " & strAutenticador)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Pergunta
vpvjunior
Olá pessoal, estou tentando consumir uma webservice passando parâmetro e não estou conseguindo obter um resultado no retorno. Alguém poderia me dizer onde estou errando, agredito que seja na variável sResultado, que se refere a uma variável de retorno. Logo abaixo desse código tem um exemplo no VB.NET e eu gostaria de aplicar no VB6, agradeço ajuda.
EXEMPLO NO VB.NET Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.