文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学的各位小编整理了ASP-Asp WinHttp.WinHttpRequest.5.1 对象使用详解 伪造 HTTP 头信息的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
由于微软封锁了 XmlHttp 对象,所以无法伪造部分 HTTP 头信息,但是 WinHttp.WinHttpRequest.5.1 对象,它居然用可以成功伪造所有 http 请求的 header 信息!
从msdn得知,WinHttp.WinHttpRequest.5.1 是 msxml 4.0 的底层对象,也就是说 XMLHTTP/ServerXMLHTTP 也是在它的基础上封装而来,WinHttpRequest 的用法与 XmlHttp 大致相同。
WaitForResponse 在使用异步方式发送请求时,可以用这个方法来控制请求的进程,指定的等待时间,以秒为一个异步传送方法来完成的值,SetTimeouts。
在服务端脚本中,不可以像客户端那样直接使用回调函数来控制异步请求,也没有相应的函数来使用
程序休眠一定的时间,因此,为了等待请求返回,我们可以使用这个方法来等待一定时间。
复制代码 代码如下:
<%
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 ''二进制数据流数据
%>
Option()相关:
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_R