如何在 VBScript 中使用 WinHttp.WinHttpRequest.Send 方法发送二进制数据
How to send binary data with WinHttp.WinHttpRequest.Send method in VBScript
如何使用 send
方法发送二进制数据?
显然它将数据视为字符串,并在遇到 NULL
字符时停止,这在二进制数据中是合法的。最终并非所有数据都被发送。如果是这样,我该如何设置要发送的数据大小呢?
Set oHTTP = Createobject( "WinHttp.WinHttpRequest.5.1" )
oHTTP.Open "PUT", myURL, False
oHTTP.Send binaryData
假设从文件中读取二进制数据,其大小为binaryDataSize
字节。
不幸的是,VBScript 没有处理二进制文件的正确例程。
作为解决方法,您可以使用一些方法来读取此处描述的二进制文件 Read and write binary file in VBscript
如果这仍然没有帮助,那么您可以在发送之前用 base64 对数据进行编码 Base64 Encode String in VBScript
您可以使用 ADODB.Stream
object 和适当的 content-type header:
发送文件
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
如何使用 send
方法发送二进制数据?
显然它将数据视为字符串,并在遇到 NULL
字符时停止,这在二进制数据中是合法的。最终并非所有数据都被发送。如果是这样,我该如何设置要发送的数据大小呢?
Set oHTTP = Createobject( "WinHttp.WinHttpRequest.5.1" )
oHTTP.Open "PUT", myURL, False
oHTTP.Send binaryData
假设从文件中读取二进制数据,其大小为binaryDataSize
字节。
不幸的是,VBScript 没有处理二进制文件的正确例程。 作为解决方法,您可以使用一些方法来读取此处描述的二进制文件 Read and write binary file in VBscript
如果这仍然没有帮助,那么您可以在发送之前用 base64 对数据进行编码 Base64 Encode String in VBScript
您可以使用 ADODB.Stream
object 和适当的 content-type header:
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