CURL для WinHTTP - PullRequest
       51

CURL для WinHTTP

0 голосов
/ 20 марта 2020

В MS Access VBA я пытаюсь подключиться к конечной точке http и загрузить данные через переменную "ccc" в приведенном ниже коде. Я не понимаю, почему это не сработает. Я не получаю ошибок.

Исходная команда CURL была: CURL -X POST -F "aa = SometingA" -F "bb = SomethingB" -F "cc = somedata1 | somedata2 http://someendpointsite.com/load.php

Const MULTIPART_BOUNDARY = "-----------------------------0123456789012"
Dim sEntityBody As String
Dim FileName As String

FileName = "File.txt"
sFormData = GetFile(FileName)

sEntityBody = sEntityBody & "Content-Disposition: form-data; name=""aa""" & vbCrLf & vbCrLf & "SomethingA" & vbCrLf
sEntityBody = sEntityBody & "--" & MULTIPART_BOUNDARY & vbCrLf
sEntityBody = sEntityBody & "Content-Disposition: form-data; name=""bb""" & vbCrLf & vbCrLf & "SomethingB" & vbCrLf
sEntityBody = sEntityBody & "--" & MULTIPART_BOUNDARY & vbCrLf
sEntityBody = sEntityBody & "Content-Disposition: form-data; name=""cc""" & vbCrLf & vbCrLf & sFormData & vbCrLf
sEntityBody = sEntityBody & "--" & MULTIPART_BOUNDARY & vbCrLf
sEntityBody = sEntityBody & "Content-Type: application/upload" & vbCrLf & vbCrLf
sEntityBody = sEntityBody & "--" & MULTIPART_BOUNDARY & "--" & vbCrLf

Dim bFormData() As Byte
ReDim bFormData(Len(sFormData) - 1)
bFormData = StrConv(sFormData, vbFromUnicode)

Set HTTPReq = CreateObject("WinHttp.WinHttpRequest.5.1")

HTTPReq.Option(WinHttpRequestOption_EnableRedirects) = False
HTTPReq.Open "Put", "http://someendpointsite.com/load.php", False
HTTPReq.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & MULTIPART_BOUNDARY
HTTPReq.SetRequestHeader "Content-Length", Len(sEntityBody)
HTTPReq.Send bFormData

MsgBox (HTTPReq.ResponseText)

Любая помощь будет принята с благодарностью, поскольку я пытаюсь одновременно изучить CURL и WinHTTP.

...