logo

哈达波斯网|专注网站

ASP

WinHttp.WinHttpRequest.5.1

ASP  2019/9/11 10:38: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 '二进制数据流数据 
%>


Requirements 要求 


    最低支持的客户端 Windows XP, Windows 2000 Professional with SP3 Windows XP 

    最低支持的服务器 Windows Server 2003, Windows 2000 Server with SP3 

    可再发行 WinHTTP 5.0 and Internet Explorer 5.01 or later on Windows XP and Windows 2000. 

    WinHTTP的5.0和Internet Explorer 5.01或更高版本的Windows XP和Windows 2000。 

    IDL HttpRequest.idl HttpRequest.idl 

    Library Winhttp.lib Winhttp.lib 

    DLL Winhttp.dll Winhttp.dll


WinHttpRequest  对象属性

属性名称访问类型说明
Option读/写设置或检索一个WinHTTP的选项值,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_RevertImpersonationOverSsl = 11
WinHttpRequestOption_EnableHttpsToHttpRedirects = 12
WinHttpRequestOption_EnablePassportAuthentication = 13
WinHttpRequestOption_MaxAutomaticRedirects = 14
WinHttpRequestOption_MaxResponseHeaderSize = 15
WinHttpRequestOption_MaxResponseDrainSize = 16
WinHttpRequestOption_EnableHttp1_1 = 17
WinHttpRequestOption_EnableCertificateRevocationCheck = 18
ResponseBody只读检索作为无符号字节数组的响应实体机构
ResponseStream只读检索机构作为响应实体的IStream
ResponseText只读作为文本检索响应实体机构
Status只读从上次检索响应的HTTP状态代码
StatusText只读获取HTTP状态的文本


选项值option使用示例

set xhr=Server.CreateObject("WinHttp.WinHttpRequest.5.1")
xhr.option(6)=false'不允许跳转
set xhr=nothing


WinHttpRequest  对象方法

方法名称说明
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开始收到响应数据时发生。


网站首页  | 最新公告  | 漏洞修补  | 网站模板  | 知识文档  | 与我联系
Copyright © 2015 jlasp.com All Rights Reserved.
哈达波斯网|专注网站 版权所有
地址:吉林省吉林市昌邑区 联系QQ:383612004 联系人:董先生
未经本站授权,禁止复制或建立镜像,内容仅用于学习参考!
ICP备案号:吉ICP备15000891号-1 | 

吉公网安备 22020202000301号