您的位置:首页 > 理论基础 > 计算机网络

Fiddler对手机或模拟器的网络请求抓包

2017-04-22 17:02 218 查看
看了多篇博客,受益匪浅!在这里做一个总结。

如题,这里把问题做一个大的划分:

Fiddler对Android手机网络请求抓包

Fiddler对Android模拟器网络请求抓包

Fiddler对Https请求抓包

Fiddler对使用OkHttp网络框架的app请求抓包

问题 1:

参见

Android利用Fiddler进行网络数据抓包

问题 2:

网上查找了许多,但是针对的模拟器版本比较老或者使用的是Genymotion,我用的是Android Studio自带的模拟器,版本是23,发现与那些教程讲的有些出入。如果你遇到的问题和我一样,可以看下这篇博客。

参见

Android自带模拟器设置Proxy

问题 3:

参见

Fiddler证书安装(查看HTTPS)

注意这篇文章第七步,作者导出了证书(.cer文件)并在安装在Android模拟器,这样Fiddler就可以抓取Android模拟器中所有App的网络请求了。

如果你不想安装证书在模拟器,你只是想要Fiddler抓取模拟器中指定App里面的请求,你也可以在执行网络请求的时候将证书信息提交给服务器。如何提交?

参见

Android Https相关完全解析 当OkHttp遇到Https

通过 HTTPS 和 SSL 确保安全

问题 4:

我想去了解Fiddler的目的是想更便捷、更直观、更具体的看到APP对服务器的请求以及响应数据,即便okhttp提供了日志打印。现在我想解决这样一个问题,我希望Fiddler能监听并抓取我本机模拟器中指定的APP所发出的请求。如果你的项目使用的是OkHttp网络框架,只需要设置一下代理就可以了:

client = new OkHttpClient.Builder()
.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.1.134", 8888)))
.sslSocketFactory(sslSocketFactory, trustManager)
.build();


IP 为 本机IP地址,可在DOS里面通过ipconfig拿到,端口号 8888,由PC来代理请求,PC又会经过Fiddler的。为何这样设置?

参见 :

【HTTP】Fiddler(一) - Fiddler简介

这样,Fiddler就可以抓取该APP中所有请求了。

由于默认情况下Fiddler会抓取很多网络请求,如果你只想测试你App中包含某个Host下的请求,你可以

参见 :

Fiddler手机抓包工具如何设置过滤域名?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 网络