获得"Bad Request. Invalid request header"



下面是我用于VBScript发送HTTP请求的代码。

Option Explicit
Dim objHTTP, url, Hpost
Set objHTTP = CreateObject("Microsoft.XMLHTTP")    
url = "http://localhost:8080/xyz/processKey?key=abcd"
objHTTP.open "POST", url, False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send
WScript.Echo objHTTP.responseText

错误:

HTTP 400错误请求
内容长度必须大于0

[编辑:采用@Lankymart的评论]

您的请求似乎不是一个纯粹的"HTTPPOST"或"HTTPGET"请求。

对于"HTTP POST"请求:

  • 参数不应该在URL中,它应该在正文中
  • 服务器似乎需要一个内容长度

示例:

Option Explicit
Dim objHTTP, url, param
Set objHTTP = CreateObject("Microsoft.XMLHTTP")    
url = "http://localhost:8080/xyz/processKey"
param = "key=abcd"
objHTTP.open "POST", url, False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send param
WScript.Echo objHTTP.responseText

对于"HTTP GET"请求

  • 参数必须嵌入URL中
  • 发送必须为空

示例:

Option Explicit
Dim objHTTP, url, param
Set objHTTP = CreateObject("Microsoft.XMLHTTP")    
url = "http://localhost:8080/xyz/processKey"
param = "key=abcd"
objHTTP.open "GET", url + "?" + param, False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send
WScript.Echo objHTTP.responseText

最新更新