如何在ASP中执行HTTP POST请求?

Chr*_*ini 10 post http httprequest asp-classic

我如何在经典asp(而不是.net)中创建带有POST数据的HTTP请求?

Sim*_*est 19

你可以尝试这样的事情:

Set ServerXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
ServerXmlHttp.open "POST", "http://www.example.com/page.asp"
ServerXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
ServerXmlHttp.setRequestHeader "Content-Length", Len(PostData)
ServerXmlHttp.send PostData

If ServerXmlHttp.status = 200 Then
    TextResponse = ServerXmlHttp.responseText
    XMLResponse = ServerXmlHttp.responseXML
    StreamResponse = ServerXmlHttp.responseStream
Else
    ' Handle missing response or other errors here
End If

Set ServerXmlHttp = Nothing
Run Code Online (Sandbox Code Playgroud)

其中PostData是您要发布的数据(例如,名称 - 值对,XML文档或其他).

您需要设置正确的MSXML2.ServerXMLHTTP版本以匹配您安装的版本.

open方法有五个参数,其中只需要前两个:

ServerXmlHttp.open Method, URL, Async, User, Password
Run Code Online (Sandbox Code Playgroud)
  • 方法:"GET"或"POST"
  • 网址:您要发布到的网址
  • 异步:默认值为False(调用不立即返回) - 异步调用设置为True
  • 用户:身份验证所需的用户名
  • 密码:身份验证所需的密码

当调用返回时,status属性保持HTTP状态.值200表示正常 - 404表示未找到,500表示服务器错误等.(有关其他值,请参阅http://en.wikipedia.org/wiki/List_of_HTTP_status_codes.)

您可以将响应作为文本(responseText属性),XML(responseXML属性)或流(responseStream属性)获取.

  • "您需要设置正确的MSXML2.ServerXMLHTTP版本以匹配您安装的版本." 或者只使用MSXML2.ServerXMLHTTP.3.0,它始终存在于当前支持的所有平台上. (5认同)