-
asp WinHttp.WinHttpRequest对象方法属性
网络 2015/2/26 18:14:04由于微软对XmlHttp对象进行了一些限制,无法通过XmlHttp对象伪造部分HTTP 头信息,但是WinHttp.WinHttpRequest.5.1是 msxml 4.0 的底层对象,XMLHTTP/ServerXMLHTTP 是在WinHttp.WinHttpRequest.5.1的基础上封装而来,所以WinHttpRequest 的用法与 XmlHttp 大致相同,但是WinHttp.WinHttpRequest.5.1却可以伪造所有http 请求header信息,所以要伪造所有的http响应头时,可以使用它,而不是封装后的XMLHTTP/ServerXMLHTTP对象
<%
Dim WinHttp
Set WinHttp = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
'设置参数
WinHttp.SetTimeouts 60000, 60000, 60000, 3000 '设置操作超时时间
'WinHttp.SetTimeouts resolveTimeout, connectTimeout, sendTimeout, receiveTimeout
'resolveTimeout = 10000 '解析 DNS 名字的超时时间,10000 毫秒。
'connectTimeout = 10000 '建立 Winsock 连接的超时时间,10000 毫秒。
'sendTimeout = 120000 '发送数据的超时时间,120000 毫秒。
'receiveTimeout = 60000 '接收 response 的超时时间,60000 毫秒。
WinHttp.Option(4) = 13056 '忽略错误标志
WinHttp.Option(6) = False '为 True 时,当请求页面重定向跳转时自动跳转,False 不自动跳转,截取服务端返回的302状态。
WinHttp.Open "GET", "http://www.baidu.com/", False 'GET 或 POST, Url, False 同步方式;True 异步方式
'组成 HTTP 头信息
WinHttp.SetRequestHeader "Accept", "*/*" '接受数据类型
WinHttp.SetRequestHeader "Accept-Language", "zh-cn,zh" '用户系统语言
WinHttp.SetRequestHeader "User-Agent", "Mozilla/6.0" '用户浏览器信息
WinHttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" '编码方式
WinHttp.SetRequestHeader "Referer", "http://www.baidu.com/" '来路
WinHttp.SetRequestHeader "Connection", "Close" 'Close = 不保持连接,Keep-Alive = 保持连接(持久连接)
'WinHttp.SetRequestHeader "Accept-Encoding", "gzip, deflate" '如果发送,会返回 gzip, deflate 压缩过的编码
'WinHttp.SetRequestHeader "Content-Length", Len(Str) '内容长度,Post 方式用的。
WinHttp.SetRequestHeader "Cookie", "test cookie!" '设置 Cookie
'发送数据
WinHttp.Send 'Post 方式:WinHttp.Send (参数)
WinHttp.WaitForResponse '等待返回请求,XMLHTTP中也可以使用
'输出结果
Response.Write WinHttp.Status '当前 HTTP 状态
'Response.Write WinHttp.ResponseText '文本数据
Response.BinaryWrite WinHttp.ResponseBody '二进制数据流数据
%>
WinHttpRequest 对象属性属性名称 访问类型 说明 Option 读/写 设置或检索一个WinHTTP的选项值,option为数组,示例查看下面
-收缩VBScript
代码 WinHttpRequestOption_UserAgentString = 0
WinHttpRequestOption_URL = 1
WinHttpRequestOption_URLCodePage = 2
WinHttpRequestOption_EscapePercentInURL = 3
WinHttpRequestOption_SslErrorIgnoreFlags = 4
WinHttpRequestOption_SelectCertificate = 5 '13056 = 忽略错误标志
WinHttpRequestOption_EnableRedirects = 6 '为True时,当请求的页面中有跳转时,抓取跳转页面信息.False相反不抓取
WinHttpRequestOption_UrlEscapeDisable = 7
WinHttpRequestOption_UrlEscapeDisableQuery = 8
WinHttpRequestOption_SecureProtocols = 9
WinHttpRequestOption_EnableTracing = 10
WinHttpRequestOption_RevertImpersonationOverSsl = 11
WinHttpRequestOption_EnableHttpsToHttpRedirects = 12
WinHttpRequestOption_EnablePassportAuthentication = 13
WinHttpRequestOption_MaxAutomaticRedirects = 14
WinHttpRequestOption_MaxResponseHeaderSize = 15
WinHttpRequestOption_MaxResponseDrainSize = 16
WinHttpRequestOption_EnableHttp1_1 = 17
WinHttpRequestOption_EnableCertificateRevocationCheck = 18ResponseBody 只读 检索作为无符号字节数组的响应实体机构 ResponseStream 只读 检索机构作为响应实体的IStream ResponseText 只读 作为文本检索响应实体机构 Status 只读 从上次检索响应的HTTP状态代码 StatusText 只读 获取HTTP状态的文本 选项值option使用示例
-收缩
VBScript
代码 set xhr=Server.CreateObject("WinHttp.WinHttpRequest.5.1")
xhr.option(6)=false'不允许跳转
set xhr=nothingWinHttpRequest 对象方法
方法名称 说明 Abort 中止一个WinHTTP的 发送方法。 GetAllResponseHeaders 检索所有的HTTP响应头。 GetResponseHeader 检索HTTP响应头。 Open 打开一个HTTP连接到HTTP资源。 Send 发送一个HTTP请求到HTTP服务器。 SetAutoLogonPolicy 设置当前自动登录策略。 SetClientCertificate 选择一个客户端证书发送到一个安全的超文本传输协议(HTTPS)服务器。 SetCredentials 设置要使用的凭据与HTTP服务器,要么是原籍国或代理服务器。 SetProxy 设置代理服务器信息。 SetRequestHeader 添加,更改或删除一个HTTP请求标头。 SetTimeouts 指定以毫秒为单位,个人的时间超过了一个组件发送/接收操作。 WaitForResponse 指定的等待时间,以秒为一个异步传送方法来完成的值,SetTimeouts。
WaitForResponse 在使用异步方式发送请求时,可以用这个方法来控制请求的进程,指定的等待时间,以秒为一个异步传送方法来完成的值,SetTimeouts。
在服务端脚本中,不可以像客户端那样直接使用回调函数来控制异步请求,也没有相应的函数来使用程序休眠一定的时间,因此,为了等待请求返回,我们可以使用这个方法来等待一定时间。WinHttpRequest事件
事件名称 说明 OnError 当发生一个应用程序运行时错误时发生。 OnResponseDataAvailable 当响应数据可用时发生 OnResponseFinished 响应数据完成时发生。 OnResponseStart 开始收到响应数据时发生。 阅读(5296) 分享(0)
上一篇: FSO写文件提示"无效的过程调用或参数"
下一篇: PHP与手机APP开发(API接口开发)