【发布时间】:2015-09-14 08:18:15
【问题描述】:
我正在尝试通过 VBA 发送 HTTP 帖子。这是我的部分代码
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", url, False
objHTTP.setRequestHeader "User-Agent", "EPS 1.0"
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.setRequestHeader "content", postString
objHTTP.setRequestHeader "Content-Length", Len(postString)
objHTTP.send
问题是,代码只有在postString 小于65535 字符时才有效。如果超过65535 个字符,则会在下面一行抛出错误:
错误:参数不正确
objHTTP.setRequestHeader "content", postString
对此有什么想法吗?我是否需要设置任何其他参数才能使其正常工作?
【问题讨论】:
-
如果您通过
send发送您的postString 会发生什么?所以,注释掉objHTTP.setRequestHeader "content", postString并修改objHTTP.send postString -
@TEK 我已经尝试过并且没有收到任何错误。但是响应失败意味着服务器没有收到任何内容
-
原因是服务器只接受通过header发布的内容。这就是我通过标头发送的原因
-
奇怪的是服务器只接受最多 16 位的内容。您是否通过不同方式向该服务器发布了其他任何内容,以验证它是否可以接受大于 16 位的内容?
-
是的。当我通过 PERL 和 PHP 发布它时它运行良好