下面是 Mac 使用 Charles 抓包工具抓包;
打开下面网址:https://xclient.info/s/charles.html
点击下载即可,如果打不开,搜索 xclient.info ,打开后搜索 Charles 即可;
我下载版本为:4.2.8;
下载完毕,会提示输入密码,密码为: xclient.info
打开如下图,将软件移入 applications 即可,注意下面有一个名称为 Crack 的文件夹:
在应用程序中找到 Charles ,右键选择包内容,依次打开 contents==>java==>charles.jar ,如下图所示:
回到上面的 Crack 文件夹中,发现里面也会有 charles.jar ,将此 jar 文件替换掉上面包内容的jar,替换完毕,退出即可;
安装完毕。
注意:
在此之前,请关闭所有代理(软件之类的),电脑 WiFi 和手机 WiFi 保证连接的是同一个;此条非常重要,否则抓包直接导致失败。
安装完毕,打开 Charles,点击 Proxy==>Proxy Settions... ,如下图所示:
点击后会出现一个弹窗,设置端口号,设置 Port,我设置为了 8888,点击 OK,如下图所示:
打开 Proxy==>SSL Proxying Settings... ,如下图所示:
点击后会出现一个弹窗,在里面可以筛选我们项目的域名,如下图所示,我已经添加了一个域名:
点击 Add,会出现一个输入域名的弹窗,在 Host 中填入域名,我加入的域名为:c.y.qq.com ,填写完毕,点击 OK;
注意:这是我项目中的域名,请自行查看自己项目中的域名,并填写;如下图所示:
点击 Help==> SSL Proxying==> Install Charles Root Certificate on a Mobile Device or Remote Browser,如下图所示:
点击后会出现下面的弹窗:
1:主机名:192.168.232.85
2:端口号:8888
3:证书地址:chls.pro/ssl
打开手机,打开网络详情,点击右上角修改按钮(不同按钮可能操作不一样),如下图所示:
点击之后,点击高级选项==>手动代理,代理服务器主机名为上面的主机名,端口为上面的端口号,依次填入并保存。
接下来打开手机浏览器,输入上面的证书地址,并下载下来;
下载完毕后开始安装证书,打开设置==>安全==>高级==>加密与凭据==>从SD卡安装证书;(不同的手机位置可能不同,但是找到安装证书就可以)
然后安装我们刚下载的证书:我的证书在 Browser ==> 其他 文件夹中,请自行找到自己的证书文件夹地址并安装;
将上面的证书放在项目的 res ==> raw 文件夹中(没有请创建),如下图所示:
在 res ==> xml ==> http.xml(没有请创建),里面代码为:
c.y.qq.com
上面给出了两种方法,在文章最后会对这两种方法给出解释;
最后在 AndroidmManifest.xml 文件中的 application 中加入下面代码:
android:networkSecurityConfig="@xml/http"
如下图所示:
注意:
如果项目不需要抓包了,或者需要上线测试,请删除 AndroidmManifest.xml 中的配置,以免带来不必要的麻烦和 bug 。
打开 APP ,并请求依次网络,就可以看到 Charles 中的记录了,可以看到请求成功,方式为 get ,网速延迟等,如下图所示:
点击 Contents 就可以看到接口返回内容了,如下图所示:
抓包结束;
在上面的 《5.项目配置》 里面,http.xml 中有两种方法;
第一种方法:手机安装证书,直接使用 user 即可,不需要在项目中配置证书了。
第二种方法:不需要手机安装证书,直接在项目中配置证书。