Отправка POST-запросов из Access VBA: методы и примеры кода

Чтобы отправить запрос POST из Access VBA, вы можете использовать библиотеку Microsoft XML (MSXML) или библиотеку WinHTTP. Ниже я приведу примеры обоих методов.

  1. Отправка запроса POST с использованием MSXML:

    Sub SendPOSTRequestUsingMSXML()
    Dim url As String
    Dim postData As String
    Dim xmlhttp As Object
    
    url = "https://example.com/api/endpoint" ' Replace with your API endpoint
    postData = "param1=value1&param2=value2" ' Replace with your POST data
    
    Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
    xmlhttp.Open "POST", url, False
    xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xmlhttp.send postData
    
    ' Handle the response
    If xmlhttp.Status = 200 Then
        ' Request was successful
        Debug.Print xmlhttp.responseText
    Else
        ' Request failed
        Debug.Print "Error: " & xmlhttp.Status & " - " & xmlhttp.statusText
    End If
    
    Set xmlhttp = Nothing
    End Sub
  2. Отправка запроса POST с использованием WinHTTP:

    Sub SendPOSTRequestUsingWinHTTP()
    Dim url As String
    Dim postData As String
    Dim winHttpReq As Object
    
    url = "https://example.com/api/endpoint" ' Replace with your API endpoint
    postData = "param1=value1&param2=value2" ' Replace with your POST data
    
    Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
    winHttpReq.Open "POST", url, False
    winHttpReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    winHttpReq.send postData
    
    ' Handle the response
    If winHttpReq.Status = 200 Then
        ' Request was successful
        Debug.Print winHttpReq.responseText
    Else
        ' Request failed
        Debug.Print "Error: " & winHttpReq.Status & " - " & winHttpReq.statusText
    End If
    
    Set winHttpReq = Nothing
    End Sub

В этих примерах показано, как отправить запрос POST с использованием библиотек MSXML или WinHTTP в Access VBA. Не забудьте заменить URL-адрес фактической конечной точкой API и предоставить соответствующие данные POST.