Как отправить двоичные данные с помощью метода WinHttp.WinHttpRequest.Send в VBScript - PullRequest
0 голосов
/ 14 декабря 2018

Как отправить двоичные данные методом send?Очевидно, он обрабатывает данные как строку и останавливается, когда встречает символ NULL, что допустимо в двоичных данных.И в конечном итоге не все данные отправляются.Если да, то как я могу установить размер данных для отправки?

Set oHTTP = Createobject( "WinHttp.WinHttpRequest.5.1" )
oHTTP.Open "PUT", myURL, False
oHTTP.Send binaryData

Предположим, что двоичные данные считываются из файла, например, и их размер составляет binaryDataSize байт.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вы можете отправлять файлы, используя объект ADODB.Stream и соответствующий заголовок типа содержимого:

Const adTypeBinary = 1

Set request = CreateObject("WinHttp.WinHttpRequest")
Set dataStream = CreateObject("ADODB.Stream")

dataStream.Type = adTypeBinary
dataStream.Open
dataStream.LoadFromFile "C:\path\to\your.file"

request.Open "PUT", "http://your/url"
request.SetRequestHeader "Content-Type", "application/octet-stream"
request.Send dataStream
0 голосов
/ 17 декабря 2018

К сожалению, VBScript не имеет надлежащих процедур для работы с двоичными файлами.В качестве обходного пути вы можете использовать некоторые подходы для чтения двоичных файлов, описанные здесь Чтение и запись двоичного файла в VBscript

Если это все еще не помогает, то вы можете кодировать данные с помощью base64 перед отправкой Base64 Encode String в VBScript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...