使用fiddler模拟http请求

本文介绍了Fiddler的工作原理及重要功能,包括HTTP统计视图、断点调试和扩展等,并详细讲解了如何使用RequestBuilder模拟HTTP请求,适用于移动服务端开发人员进行调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述 

   与httpwath相比,fiddler能模拟http请求、能断点调试、http分析统计吸引了我,使用之后感觉这个工具非常不错,这篇文章只单介绍一下fiddler工作原理,简单介绍一下它的重要功能,以及如何使用使用fiddler模拟http请求,满足移动服务端开发人员调试的问题。对于其他的功能大家可以自己研究一下。

fiddler工作原理:

    当你启动了Fiddler,程序将会把自己作为一个微软互联网服务的系统代理。作为系统代理,所有的来自微软互联网服务(WinInet)的http请求再到达目标Web服务器的之前都会经过Fiddle,同样的,所有的Http响应都会在返回客户端之前流经Fiddler。如下图:

fiddler重要功能:

1、HTTP统计视图:用来分析http请求,如下图的83个http请求:

2、用Fiddler来调试:当你在软件的菜单rules—automatic breakpoints选项选择beforerequest,或者当这些请求或响应属性能够跟目标的标准相匹配,Fiddler就能够暂停Http通讯,允许修改请求和响应。这个个vs的断点调试一样,相当实用。

比如说:我请求login。在提交到服务器之前,可以暂停请求,强制修改httphead,如下图:

然后点击运行到完成:

3、Fiddler 扩展:fiddler是用.net开发的,可以使用脚本和.net语言扩展fiddler。

使用Request Builder模拟http请求

对于移动服务端开发人员来说,使用这个工具模拟移动客户端请求是非常方便的。

get请求:

下拉框中选择GET,输入请求的地址,输入Request Headers。Request Headers是键值对的格式,用:隔开。点击执行。

在中可以看到相应的结果:

Post请求:对于post请求,需要输入Reuqest Body。而Request Body 默认情况是隐藏起来的。按下面步骤点击显示出Reuqest Body。

1、点击Options。

2、点击Tear off,如下图。

点击执行,就可以模拟post请求了。

总结:本文简单介绍了一下fiddler的原理,重要的功能,以及移动服务端开发人员如何模拟http请求,方便自己调试代码。


出处:http://zhuqil.cnblogs.com

### 使用Python模拟Fiddler发起的HTTP请求 为了实现这一目标,可以利用`requests`库来构建和发送HTTP请求。下面展示了一个简单的例子,该例子展示了如何通过Python代码执行GET、POST以及其他类型的HTTP请求。 对于GET请求: ```python import requests url = 'https://example.com' response = requests.get(url) print(response.status_code) print(response.text) ``` 当涉及到更复杂的请求方式如PUT或DELETE时,同样可以通过指定method参数轻松完成[^1]。例如,要发出一个带有JSON负载的POST请求,则可按照如下方式进行操作: ```python payload = {'key': 'value'} headers = { 'Content-Type': 'application/json', } response = requests.post('https://jsonplaceholder.typicode.com/posts', json=payload, headers=headers) print(response.json()) ``` 如果想要模仿Fiddler中的Composer功能来进行接口测试,比如向某个API端点提交表单数据或者上传文件,也可以很容易做到这一点。这里给出了一段用于上传图片至服务器的例子: ```python files = {'upload_file': open('image.jpg','rb')} values = {'DB': 'photcat', 'OUT': 'csv', 'SHORT': 'short'} r = requests.post('http://httpbin.org/post', files=files, data=values) print(r.text) ``` 值得注意的是,在实际应用过程中可能还需要处理诸如身份验证(authentication),设置自定义头部(custom headers)等问题。这些都可以借助于`requests`库的强大特性得以解决。 另外,考虑到安全性和隐私保护方面的要求,有时需要配置SSL/TLS证书以确保通信的安全性。这可以在创建Session对象之后对其进行相应设定,就像在使用夜神模拟器配合Fiddler进行APP抓包分析那样[^2]。 最后提醒一点,虽然上述方法能够很好地满足大多数场景下的需求,但在某些特殊情况下(例如HTTPS加密流量解密),还是建议直接采用专业的中间人代理工具如Fiddler本身更为稳妥[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值