Web services 将Excel工作簿发布到Web服务:如何获取字节?

Web services 将Excel工作簿发布到Web服务:如何获取字节?,web-services,vba,http,excel,Web Services,Vba,Http,Excel,我正在编写Excel宏以将工作簿发布到HTTP Web服务。我正在研究如何使用ServerXMLHTTP: Sub PostSelf() Dim URL, objHTTP Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") URL = "http://someService/" objHTTP.Open "POST", URL, False objHTTP.setRequestHeader "User-Ag

我正在编写Excel宏以将工作簿发布到HTTP Web服务。我正在研究如何使用
ServerXMLHTTP

Sub PostSelf()
    Dim URL, objHTTP
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    URL = "http://someService/"
    objHTTP.Open "POST", URL, False
    objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    objHTTP.send ("")
End Sub
根据,“[send]方法接受一个可选参数,即要使用的requestBody。可接受的变量输入类型是BSTR,即UI1(无符号字节)的SAFEARRAY。”

假设工作簿已保存,如何将工作簿的字节检索为UI1的安全数组

With CreateObject("ADODB.Stream")
    .Type = 1 ' Binary stream
    .Open
    .LoadFromFile ThisWorkbook.FullName
    .Position = 0
    arrBuffer = .Read ' get the whole binary
    MsgBox TypeName(arrBuffer) ' Byte()
    MsgBox .Size ' Length in bytes
End With

UPD:二进制模式流实例获取包含字节数组的变量数据类型参数,输出数据类型相同,此方法仅将结果转换为以提供灵活性和兼容性,由于隐式类型转换,生成的变量将包含字节数组-
字节(),我们使用的毕竟是VB而不是C。

这有帮助吗@DavidZemens谢谢,很好的发现,它工作得很好。我尝试了这个,但是在运行
.loadfromfilethishworkbook.FullName
(尽管它在另一个工作簿上工作)时出现了异常。