【问题标题】:VBA HTTP POST Parameter IncorrectVBA HTTP POST 参数不正确
【发布时间】:2015-04-18 09:54:20
【问题描述】:

我是 VBA 新手,所以这可能是我的问题。我正在尝试从 Excel 执行 HTTP POST 到 Web 服务,并且我可以非常愉快地 POST,直到我更改代码以便在我的消息中发布内容,此时我收到以下错误:

运行时错误'-2147024809 (80070057)':

参数不正确。

我的代码如下:

Dim oHttp As Object
Set oHttp = CreateObject("MSXML2.XMLHTTP.6.0")
Call oHttp.Open("POST", url, False)
oHttp.setRequestHeader "Content-Type", "application/text"
oHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
Call oHttp.send(content)
httpPOST = oHttp.responseText

杀死代码的那一行是 oHttp.send - 如果我不传递任何内容,那很好,只要我把内容放在这里就不开心了。

内容参数是一个包含逗号分隔文本并包含换行符的大字符串。我认为这就是它不开心的原因,如果我将字符串更改为简单的“Hello”,那么发送成功并且应用程序会愉快地进入下一行,然后再遇到运行时错误:

完成此操作所需的数据尚不可用

所以我想我的问题是,如何将一大段文本发布到服务器?

谢谢

【问题讨论】:

  • 你不需要Call 或括号来包裹它们所使用的两个代码行中的任何一个的参数。content 是空白的;虽然您可能已经删除了字符串分配,但您应该对其进行编辑,以便我们可以看到您尝试传递给 post 操作的版本。
  • 也许尝试编码您的数据? stackoverflow.com/questions/17818903/… 还要确保您的网址格式正确

标签: vba excel


【解决方案1】:

感谢 cmets,我设法通过将字符串转换为二进制数组然后发送二进制数组来使其工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 2013-08-09
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多