官方文档地址:

WinHttpRequest 对象 - Win32 apps | Microsoft Docs

=========================================================================

使用WinHttpRequest伪造HTTP头信息,伪造Referer等信息

由于微软封锁了XmlHttp对象,所以无法伪造部分HTTP头信息,但是WinHttp.WinHttpRequest.5.1对象,它居然用可以成功伪造所有http请求的header信息!

从msdn得知,WinHttp.WinHttpRequest.5.1是msxml4.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", "百度一下,你就知道", 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", "百度一下,你就知道" '来路

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_RevertImpersonationOverSsl = 11;

WinHttpRequestOption_EnableHttpsToHttpRedirects = 12;

WinHttpRequestOption_EnablePassportAuthentication = 13;

WinHttpRequestOption_MaxAutomaticRedirects = 14;

WinHttpRequestOption_MaxResponseHeaderSize = 15;

WinHttpRequestOption_MaxResponseDrainSize = 16;

WinHttpRequestOption_EnableHttp1_1 = 17;

WinHttpRequestOption_EnableCertificateRevocationCheck = 18;

方法 Description 说明

Abort 中止一个WinHTTP的 发送方法。

GetAllResponseHeaders 检索所有的HTTP响应头。

GetResponseHeader 检索HTTP响应头。

Open 打开一个HTTP连接到HTTP资源。

Send 发送一个HTTP请求到HTTP服务器。

SetAutoLogonPolicy 设置当前自动登录策略。

SetClientCertificate 选择一个客户端证书发送到一个安全的超文本传输协议(HTTPS)服务器。

SetCredentials 设置要使用的凭据与HTTP服务器,要么是原籍国或代理服务器。

SetProxy 设置代理服务器信息。

SetRequestHeader 添加,更改或删除一个HTTP请求标头。

SetTimeouts 指定以毫秒为单位,个人的时间超过了一个组件发送/接收操作。

WaitForResponse 指定的等待时间,以秒为一个异步传送方法来完成的值,SetTimeouts。

该 WinHttpRequest 对象定义以下属性。

属性 访问类型 说明

Option 读/写 设置或检索一个WinHTTP的选项值。

ResponseBody 只读 检索作为无符号字节数组的响应实体机构。

ResponseStream 只读 检索机构作为响应实体的IStream。

ResponseText 只读 作为文本检索响应实体机构。

Status 只读 从上次检索响应的HTTP状态代码。

StatusText 只读 获取HTTP状态的文本。

Events 活动

The WinHttpRequest object defines the following events.

WinHttpRequest 对象定义的下列事件。

Event 事件 Description说明

OnError Occurs when there is a run-time error in the application.

当发生一个应用程序运行时错误时发生。

OnResponseDataAvailable Occurs when data is available from the response.

当响应数据可用时发生。

OnResponseFinished Occurs when the response data is complete.

响应数据完成时发生。

OnResponseStart Occurs when the response data starts to be received.

开始收到响应数据时发生。

Remarks 备注

The WinHttpRequest object uses the IErrorInfo interface to provide error data.

该 WinHttpRequest 对象使用 IErrorInfo 接口来提供错误数据。

A description and numerical error value can be obtained with the Err object in Microsoft Visual Basic Scripting Edition (VBScript),

and the Error object in Microsoft JScript.

The lower 16 bits of an error number correspond to the values found in Error Messages.

Note For Windows XP and Windows 2000, see Run-Time Requirements.

注意:对于 Windows XP 和 Windows 2000,请参阅运行时间要求。

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

WinHttp用法(WinHttp.WinHttpRequest.5.1)相关推荐

  1. WinHttp.WinHttpRequest.5.1

    在服务端脚本中,不可以像客户端那样直接使用回调函数来控制异步请求,也没有相应的函数来使用程序休眠一定的时间,因此,为了等待请求返回,我们可以使用这个方法来等待一定时间. 复制代码代码如下: <% ...

  2. 学习C#中调用COM,后期绑定(以及对WinHttp COM对象的C#封装)

    学习C#中调用COM,后期绑定(以及对WinHttp COM对象的C#封装) 学习C#中调用COM,后期绑定全部代码 开始学习C#了,没打算从语法一点一点的看起!所以上来就直接开始代码了!同时也和De ...

  3. 鱼刺 winhttp

    winhttp com 对象   网页_访问_对象 api wininet  网页访问 下划线命名法 驼峰命名法  小驼峰   JS内置的一些 大驼峰   api 多线程用   coinitializ ...

  4. 使用WinINet和WinHTTP实现Http訪问

    使用WinINet和WinHTTP实现Http訪问 飘飘白云 l_zhaohui@163.com 2007-11-30 Http訪问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用 ...

  5. 使用WinINet和WinHTTP实现Http访问

    Http访问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用向服务器提交数据,在这个例程中我使用POST方式,提交数据value1与value2,并从服务器得到他们的和(value ...

  6. WinINet 与 WinHTTP简介

    之前一直有听到WinHTTP和WinINet这两种网络服务,是Microsoft提供的两套API,但一直没有系统的用过,趁次机会一起来将这个整理一下. 首先了解一下WinINet: WinInet,全 ...

  7. 配置 WinHTTP 的代理设置

    配置 WinHTTP 的代理设置 适用于:  Exchange Server 2010 SP2, Exchange Server 2010 SP3 在 MicrosoftExchange Server ...

  8. post入门篇:请求头/响应头、cookie、URL结构/编码、数据编码、winHttpRequest、post分析技巧、伪装IP

    目录 http URL URL编码 协议头 get请求头 post请求头.响应头 提交数据的类型(Content-Type) 编码 Base64编码 易语言处理302的包 cookie 浏览器是如何设 ...

  9. 按键精灵电脑版对接百度ai,告别字库(文字识别篇)

    很简单,根据百度ai接口api文档,用post或者get请求,封装参数请求响应即可.哈哈,当然不可能就这样结束了本篇博客了.本篇先讲文字识别,喜欢的朋友可以关注下,后续会继续写图片识别等所有ai对接方 ...

  10. [AHK]Bing Desktop Wallpaper Changer(必应壁纸随心换)

    先来个[简版的bing壁纸] Winhttp := ComObjCreate("WinHttp.WinHttpRequest.5.1") Winhttp.Open("GE ...

最新文章

  1. 如何处理JSON中的特殊字符 介绍几种解决方案
  2. 如何在敏捷中管理和减少技术负债?
  3. php+sql创建本地项目详细步骤1——创建数据库数据表,数据库连接
  4. Python 列表复制
  5. 母版页嵌套子母版页通信
  6. javascript获取当前日期时间及其一些操作
  7. 大数据_Hbase-(概念补充_hbase中namespace的概念)---Hbase工作笔记0007
  8. scala类型匹配注意事项
  9. html的3d旋转木马插件,纯js超酷3D旋转木马特效插件
  10. IIS由于出现权限不足而无法读取配置文件解决方案
  11. PAIP.ASP重复INCLUDE包含引起的重定义错误解决方案
  12. 计算机 仿真 流体力学剪切应力,基于人体血管B型主动脉夹层三维建模及血流动力学仿真研究...
  13. 计算机统计分析spss试卷,《SPSS计算机统计分析方法》试卷A卷
  14. Qt怎么实现将bmp图片转换成Ascii_你保存的word和pdf文档图片为什么变模糊了?
  15. 哪种pdf编辑器更方便使用
  16. 爬取中国知识产权案件网
  17. 记一次刷路由器固件的经历
  18. c/c++源码学习和实践资源,万丈高楼平地起
  19. NYOJ-599-奋斗的小蜗牛-2013年11月4日22:22:22
  20. windows下安装spark

热门文章

  1. kernel中的memtest
  2. PyTorch中文教程 | (10) 对抗性示例生成
  3. 倍福--和威伦触摸屏通信
  4. 微信H5分享、复制链接遇到的坑
  5. python自回归模型_向量自回归模型(VAR)到底厉害在哪里?
  6. 【Pytorch教程】:激励函数
  7. java二路归并排序算法_二路归并排序的java实现
  8. 决策树CART介绍*
  9. mac safari 下载pdf
  10. [深度学习] Python人脸识别库face_recognition使用教程