参考地址:http://www.2cto.com/kf/201603/496351.html
参考地址:https://gold.xitu.io/entry/587f1c8b1b69e6006b064003
Charles是一款抓包神器,它是Java开发的跨平台的软件,不仅可以在Mac上使用,Linux以及Window下都是可以使用的,当然需要安装JDK,才能运行,他是收费的,当然,如果不付费,也能使用,只是每过十分钟,就会弹出一个对话框.
当然了,网上还是有破解版的,怎么下载破解的,就不用我说了,直接百度或谷歌吧.
HTTP抓包
http抓包比较简单,基本上只要打开了charles,然后随便一个网络请求,就可以在charles中看到抓取的信息了![](http://upload-images.jianshu.io/upload_images/680745-a8790620fdb73328.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
那么我们怎么抓取iOS真机设备上的http呢?1. 打开charles2. 记下电脑的ip地址,然后打开charles的设置,charle-proxy - proxy settings![](http://upload-images.jianshu.io/upload_images/680745-cfafc637a06f9564.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
记住端口号·3. 打开手机的wifi详情,选择http代理,填入刚刚记下的电脑的ip地址,还有上面记下的charles的端口号(例如,默认的8888)![](http://upload-images.jianshu.io/upload_images/680745-2286fd21da7177c7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 在手机上进行网络访问,这样charles会出现一个提示,大体上意思是,是否允许charles作为手机的网络请求代理
vcHLPC9wPg0KPGgzIGlkPQ=="https抓包">HTTPS抓包
在电脑上抓包https,例如百度的,首先就是安装Charles的根证书,Help - SSL Proxying - Install Charles Root Certificate ,会打开 钥匙 应用,安装进去![](http://upload-images.jianshu.io/upload_images/680745-9618149f68b3a065.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)当安装后,可能你看不到在哪里,在右上角的搜索中 输入 cha 则会显示出来,你看到上面是 此根证书不被信任!,![](http://upload-images.jianshu.io/upload_images/680745-1aa15cea5ddfcbae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这样,证书是不可用的,你还是不能抓包https,怎么做呢?在证书上 右键 - 显示详情 ,展开信任 选择 始终信任
![](http://upload-images.jianshu.io/upload_images/680745-33297a5692f72bb8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
然后点击左上角的关闭,系统会弹出授权提示框,授权同意修改,回到列表,稍等,证书就刷新了
![](http://upload-images.jianshu.io/upload_images/680745-7ca1264cbc61b23f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这个时候就可以用了![](http://upload-images.jianshu.io/upload_images/680745-09987e6df5a51ca3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
就可以抓包这个host了
其实这一步等价于
![](http://upload-images.jianshu.io/upload_images/680745-553a62a5e7359966.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在host中可以输入 * 表示 匹配所有的
当然,Port 也可以输入 * :这样就是匹配所有的了
这个时候,你访问https网络请求,就可以在charles上看到了!