Я работаю над процедурой в MS-Access VBA для отправки текстовой строки XML в веб-службу и обработки текстовой строки XML, возвращаемой из службы.
Проблема, с которой я сталкиваюсь, заключается в том, что свойство responseText всегда пусто, когда оно должно содержать текстовую строку XML. Ошибки не возвращаются и .status = "ОК".
Я пробовал объекты 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.
Может ли кто-нибудь помочь мне решить мою проблему?