我目前正在使用Microsoft Access 2007中的系统,我需要向外部Web服务器发出SOAP请求以检索某些数据。我是SOAP和Visual Basic的新手,我一直无法弄清楚我需要做些什么才能使SOAP请求发生。
从一些谷歌搜索来看,似乎以前版本的Access可能需要Microsoft的SOAP Toolkit才能发出SOAP请求。然而,据我所知,SOAP Toolkit几年前就被弃用了,所以我很确定这不是我想要的。我是否需要下载外部库才能进行SOAP调用?如果是这样,哪个?如果没有,用于从Access 2007文件进行SOAP调用的VB语法是什么?
答案 0 :(得分:2)
我不知道是否有更好的方法,而不是通过VBA使用低级Http POST将SOAP消息传递给服务器。您必须通过您选择的任何方法来制作XML SOAP消息。这是一个在VBA中执行Http POST的示例函数。
Function doHttpPost(request As String) As String
Dim response As String
Dim http As WinHttp.WinHttpRequest
Set http = New WinHttp.WinHttpRequest
On Error GoTo doPostError
http.setTimeouts 30000, 30000, 30000, 300000
http.Open "POST", "http://someserver.com/soapListener", False
http.setRequestHeader "name", "value" 'set any headers you want'
http.send request
If http.Status <> 200 Then
MsgBox "An error has occurred with your request. " & vbCrLf & "The error message is: " & http.responseText & vbCrLf & http.Status & " " & http.statusText
Exit Function
End If
doHttpPost = http.responseText
Exit Function
doPostError:
'process error messages here'
End Function
答案 1 :(得分:1)
您应该使用自己喜欢的.NET语言来创建Access可以调用的COM组件。该组件应使用标准.NET机制(“添加服务引用”)来调用Web服务。
在任何情况下都不应使用非常过时的SOAP Toolkit。