Создание SOAP-запроса из Access 2007 - PullRequest
3 голосов
/ 22 сентября 2010

В настоящее время я работаю в системе Microsoft Access 2007, и мне нужно сделать SOAP-запрос к внешнему веб-серверу, чтобы получить некоторые данные. Я новичок как в SOAP, так и в Visual Basic, и у меня возникли проблемы с определением, что именно мне нужно сделать, чтобы этот запрос SOAP был выполнен.

Судя по некоторым поискам в Google, кажется, что в предыдущих версиях Access, возможно, требовался SOAP Toolkit от Microsoft, чтобы сделать SOAP-запрос. Однако, насколько я могу судить, несколько лет назад SOAP Toolkit был объявлен устаревшим, поэтому я уверен, что это не то, чего я хочу. Нужно ли загружать стороннюю библиотеку, чтобы сделать вызов SOAP? Если так, то какой? Если нет, то какой синтаксис VB используется для вызова SOAP из файла Access 2007?

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Я не знаю, есть ли лучший способ, чем сделать это через VBA, используя низкоуровневый HOSTP POST для передачи SOAP-сообщения на сервер. Вам нужно будет создать сообщение XML SOAP любым выбранным вами способом. Вот пример функции для выполнения HOSTP POST в VBA.

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 голос
/ 22 сентября 2010

Вы должны использовать ваш любимый язык .NET для создания COM-компонента, который Access может вызывать.Этот компонент должен использовать стандартные механизмы .NET («Добавить ссылку на службу») для выполнения вызовов веб-службы.

Ни при каких обстоятельствах не следует использовать набор инструментов SOAP, который очень устарел.

...