9

我将如何在经典 asp(不是 .net)中使用 POST 数据创建 HTTP 请求?

4

2 回答 2

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

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

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

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

ServerXmlHttp.open Method, URL, Async, User, Password
  • 方法:“GET”或“POST”
  • URL:您要发布到的 URL
  • 异步:默认为 False(调用不会立即返回) - 设置为 True 用于异步调用
  • 用户:认证所需的用户名
  • 密码:认证所需的密码

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

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

于 2009-09-23T02:38:03.580 回答
0

您必须直接使用现有的 xmlhttp 服务器对象之一,或者您可以使用一个库,通过抽象低级别的东西使生活变得更轻松。

检查获取 URL 的ajaxed 实现

缺点:您需要配置库才能使其工作。不确定这是否对您的项目是必要的。

于 2009-09-23T04:56:06.700 回答