【发布时间】:2018-09-19 06:07:20
【问题描述】:
我正在使用 MS-Access VBA 中的一个过程,将 XML 文本字符串 POST 到 Web 服务并处理从服务返回的 XML 文本字符串。
我遇到的问题是 responseText 属性在它应该包含 XML 文本字符串时始终为空。没有错误返回并且 .status = "OK"。
我已经尝试过 WinHttp.WinHttpRequest、MSXML2.XMLHTTP 和 MSXML2.ServerXMLHTTP 对象,并且一直遇到同样的问题。
这是一个代码示例:
Public Function Send() As Boolean
Dim oXHR As MSXML2.XMLHTTP60
Dim sURL, sCred As String
Dim sRequest, sResult, sStatus, sHeader As String
Dim bRtn As Boolean
BuildReqXML
sRequest = Me.RequestXML_String
With orsValues
sURL = .Fields("WebServiceURL").Value
sCred = Base64Encode(Trim(.Fields("User").Value) & ":" & Trim(.Fields("Password").Value))
End With
Set oXHR = New MSXML2.XMLHTTP60
With oXHR
.Open "POST", sURL, False
.SetRequestHeader "Authorization", "Basic " & sCred & """"
.SetRequestHeader "User-Agent", "Mozilla/4.0"
.SetRequestHeader "Content-Type", "text/xml"
.Send sRequest
sStatus = .StatusText
sResult = .ResponseText
sHeader = .GetAllResponseHeaders
If sResult <> "" Then
If Contains(sResult, "<") Then ReadXML sResult, "Response"
Debug.Print sResult
Else
Debug.Print sHeader
Debug.Print sRequest
End If
End With
Set oXHR = Nothing
End Function
我已通过在 HTML 文档中构建类似的调用、发送 XML 字符串并接收响应 XML 字符串来验证 Web 服务是否正常工作。
有人可以帮我解决我的问题吗?
【问题讨论】:
-
这是一个内部 URL?
-
使用 e 检查来自文档和 VBA 的请求。 G。 Fiddler 来找出不同之处。
-
没有。该 URL 是第 3 方网络服务地址。
标签: vba xmlhttprequest winhttprequest