Web services VisualBasic6中的Web服务响应

Web services VisualBasic6中的Web服务响应,web-services,vb6,Web Services,Vb6,我必须从VisualBasic6中调用Web服务,而且以前从未编写过Web服务(我了解到VB6与WS的结合在这里并不流行,但事实就是如此) <title>Error 404 Page not found</title> <link href="/com_errors_html/css/estilos.css" rel="stylesheet" 我正在构建一个示例来了解它是如何工作的,但是WS-it并没有返回我所期望的:一个数字(似乎返回的是xml格式的网页)。

我必须从VisualBasic6中调用Web服务,而且以前从未编写过Web服务(我了解到VB6与WS的结合在这里并不流行,但事实就是如此)

<title>Error 404 Page not found</title>   <link href="/com_errors_html/css/estilos.css" rel="stylesheet"
我正在构建一个示例来了解它是如何工作的,但是WS-it并没有返回我所期望的:一个数字(似乎返回的是xml格式的网页)。也许这是一件简单的事情,但我已经浪费了数小时寻找解决方案,却什么也没找到

<title>Error 404 Page not found</title>   <link href="/com_errors_html/css/estilos.css" rel="stylesheet"
代码如下:

    Dim objDom As Object
    Dim objXmlHttp As Object
    Dim strRet As String
    Dim intPos1 As Integer
    Dim intPos2 As Integer
    Dim strSoapAction As String
    Dim strUrl As String
    Dim strXml As String

    strUrl = "http://my_file.xsd"
    strSoapAction = "http://web_service_soap"


    strXml = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
   "<soapenv:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" >" & _
     "<soapenv:Body>" & _
       "<entry xmlns=""http://my_file.xsd"">" & _
         "<par1>PARAM_1</par1>" & _
         "<par2>PARAM_2</par2>" & _
       "</entry>" & _
     "</soapenv:Body>" & _
   "</soapenv:Envelope>"

    Set objDom = CreateObject("MSXML2.DOMDocument")
    Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")

    ' Load XML
    objDom.async = False
    objDom.loadXML strXml

    ' Open the webservice
    objXmlHttp.open "POST", strUrl, False

    ' Create headings
    objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
    objXmlHttp.setRequestHeader "SOAPAction", strSoapAction

    ' 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
<title>Error 404 Page not found</title>   <link href="/com_errors_html/css/estilos.css" rel="stylesheet"
Dim objDom作为对象
Dim objXmlHttp作为对象
作为字符串的Dim strRet
整数形式的Dim intPos1
作为整数的Dim intPos2
作为字符串的Dim strSoapAction
暗弦
将strXml设置为字符串
strUrl=”http://my_file.xsd"
strSoapAction=”http://web_service_soap"
strXml=”“&_
"" & _
"" & _
"" & _
“参数1”和_
“参数2”和_
"" & _
"" & _
""
设置objDom=CreateObject(“MSXML2.DOMDocument”)
设置objXmlHttp=CreateObject(“MSXML2.XMLHTTP”)
'加载XML
objDom.async=False
objDom.loadXML strXml
'打开Web服务
objXmlHttp.open“POST”,strUrl,False
'创建标题
objXmlHttp.setRequestHeader“内容类型”,“text/xml;charset=utf-8”
objXmlHttp.setRequestHeader“SOAPAction”,strSoapAction
'发送XML命令
objXmlHttp.send objDom.xml
'从webservice获取所有响应文本
strRet=objXmlHttp.responseText
"近物",
设置objXmlHttp=Nothing
'提取结果
intPos1=InStr(strRet,“结果>”)+7

intPos2=InStr(STRET,"与您的问题无关,但您正在将主体从字符串加载到XML对象中,然后立即将
.XML
读回字符串。您根本不需要
objDom
。相反,当您读取响应时,您忽略已解析的
.responseXML
并尝试自己解析它。与您的pro相关问题,您确定web服务只接受SOAP请求吗?对于与VB6相关的web服务需求,我使用
setRequestHeader“内容类型”、“应用程序/x-www-form-urlencoded”
并将参数作为
key=value
对传递。这与您的问题无关,但您正在将主体从字符串加载到XML对象中,然后立即将
.XML
读回字符串。您根本不需要
objDom
。相反,在读取响应时,您忽略了解析的
.responseXML
并尝试自己解析它。与您的问题相关,您确定web服务只接受SOAP请求吗?对于与VB6相关的web服务需求,我使用
setRequestHeader“Content Type”,“application/x-www-form-urlencoded”
并将参数作为
key=value
对传递。