【转载】如何抓取winhttp接口的请求
来源:互联网 发布:南京浦口行知基地图片 编辑:程序博客网 时间:2024/05/27 20:32
在路上,最近总是能够遇到这样的问题
江湖传言,Fiddler是捕获客户端与服务器之间的所有HTTP(S) 请求的利器,但是在具体使用过程中,发现使用Fiddler进行抓包时有一部分请求总是没到,多方苦寻之下发现客户端使用WinINET这套API发送的请求都能正常抓到,而使用WinHTTP这套API发送的请求都没有抓到,遂搜索了一下,发现Fiddler对各种HTTP(s) stacks都是能支持的,只是默认启动时只是接管了WinINET代理设置。
分析
为了让Fiddler能够抓取WinHTTP的包,需要做的就是让WinHTTP的代理设置改为与WinINET一致,因为WinINET在Fiddler启动后使用Fiddler作为代理。这些通过windows自带命令就可以做到:
在XP下: proxycfg -u
在Win7下(使用管理员权限的命令行):netsh winhttp import proxy ie
注:在Win7 64位系统下需要将Synstem32 目录和SysWOW64目录下的netsh命令各执行一次,下方将给出的脚本已覆盖这种情况。
但是如果使用频繁,每次都还要去手动敲命令行还是挺痛苦的,作为能偷懒的地方绝不多放过的少年,一劳永逸的方法当然是让它随Fiddler的启动与关闭自动执行这些命令
实现
这可以通过修改CustomRules.js实现。操作方法:打开Fiddler > 点击菜单Rules > 点击Customize Rules…
打开CustomRules.js文件后,寻找到OnAttach与OnDetach函数,可以将Fiddler启动后与关闭前需要定制的一些自动动作分别填写在它们里头,为实现让Fiddler能抓取WinHTTP发送的请求的目的而修改后的代码如下,添加了 UpdateWinHTTPSettings函数,在OnAttach和OnDetach里添加了对它的调用,修改完后保存,重新启动Fiddler即可生效:
注:UpdateWinHTTPSettings函数里做的事情其实很简单,就是使用管理员权限执行文章前面说到的命令
- 【转载】如何抓取winhttp接口的请求
- WINHTTP的API接口说明。
- WINHTTP的API接口说明
- WINHTTP的API接口说明。
- WINHTTP的API接口说明。
- WINHTTP的API接口说明
- 使用WinHttp接口编程的心得
- Fiddler如何抓取接口
- winhttp 发送 get 请求
- Mac如何抓取ios中http、https请求的包
- vue项目开发遇到的问题:如何改变请求的host以及referer抓取做了host以及referer限制的接口数据
- Java如何抓取ORACLE中调用函数接口的SQL
- 股票数据抓取接口文章转载
- WinHTTP如何处理Cookie
- Charles如何抓取http/https请求
- 【fiddler】如何使用fiddler抓取python请求
- WinHTTP的AutoProxy常见问题
- winHttp
- SparkSQL---Dataframe(Dynamic)
- Nginx部署静态网页(2017.11.17添加https)
- Eclipse配置Maven--Missing c3p0.jar包
- Qt样式表qss的两种用法
- HDU 4407 Sum (容斥原理)
- 【转载】如何抓取winhttp接口的请求
- java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
- const和static
- Oracle Instant Client(即时客户端) 安装与配置
- STM32F429 时钟系统笔记
- VS2010 类库程序集 无法添加WPF窗口、WPF用户控件
- PyQt5笔记
- uvalive3027 Corporative Network
- 趣谈设计模式