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

看了多篇博客,受益匪浅!在这里做一个总结。

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

  1. Fiddler对Android手机网络请求抓包
  2. Fiddler对Android模拟器网络请求抓包
  3. Fiddler对Https请求抓包
  4. 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手机抓包工具如何设置过滤域名?

你可能感兴趣的:(基础)