charles代理&抓包配置

背景

先说下自己的应用背景 一件代发涉及到微信api相关的功能 扫一扫 转发,需要在真机上测试功能是否正确
第一步掉接口,获取微信签名,接着微信初始化 之后才能使用api 初始化的时候 就算签名获取成功 微信端也会校验域名
接口掉的域名是否与你访问的域名是一致 ,如果不一致 ready失败 还是不能调取api 换句话说 你本地其服务强行调通后端签名接口
但是此时你访问的是localhost:80 到wx.ready的时候还是会失败 。 浏览器上只能选择wechat环境
但是并不能真实的调起微信的api 所以需要在真机上联调,这时候问题就出现了 我怎么在真机上访问的域名 跟微信后端的域名对应上呢

有两种方法

1.你可以上传到服务器

优点:容易理解,实现简单 缺点:联调麻烦 比如上传到预发环境 我们的域名是
https://logisticsy-mrd.jd.com/
这时候你本地访问的域名是https://logisticsy-mrd.jd.com/
微信后台接收的也是https://logisticsy-mrd.jd.com/ 这样子就保持一致了
也就能调起微信api了,但是同时也存在弊端 你本地没有调试好 直接上预发 光发版本就折腾的了 联调更是费劲

2. 你可以本地建个代理

优点:联调方便 缺点:需要熟练配置 整体来说利大于弊 配置一次 后续抓包代理就很省事了 这也就是我接下来要说的
使用charles建立代理同步本地代码实时联调,你需要有以下准备

1,首先安装charels

可在 玩转苹果 上安装破解版

2,建立同一网段

由于公司限制 Mac本无法开启热点 需要有windows本的同事开启一个热点,你的Mac本与手机同时链接该热点

3,打开charles,设置代理

代理下面有以下这些选项 我们只需要用到图中标记的即可,后续会一个一个讲到

charles代理&抓包配置_第1张图片

代理->设置代理

charles代理&抓包配置_第2张图片

查看你此时链接WIFI的Ip

输入ifconfig,比如我的是192.168.137.207

charles代理&抓包配置_第3张图片

这时候手机需要找到 设置->无线局域网->配置代理->手动 做如下设置

charles代理&抓包配置_第4张图片
charles代理&抓包配置_第5张图片

4,打开/回到 charles

此时会弹出一个对话框 意思是 是否允许你手机的ip链接charles 点击允许,如果没有出来改弹框 需要自己手动设置
代理->访问控制,添加手机ip,点击确定即可
charles代理&抓包配置_第6张图片

5,设置代理

代理->SSL代理设置,选中启用SSL代理, 添加*:443选中 确定 意思是我可以代理任意https的url

charles代理&抓包配置_第7张图片

6,手机安装征书

1). ios手机 帮助->SSL代理->在移动设备上安装证书 出现弹框,访问网址,下载证书,再根据引导 打开信任
charles代理&抓包配置_第8张图片

charles代理&抓包配置_第9张图片

charles代理&抓包配置_第10张图片

2)android 手机 帮助->SSL代理->在移动设备上安装证书 出现弹框,访问网址,下载证书 如果不能下载 使用
帮助->SSL代理->保存charles证书 ,下载下来以pem结尾 发送给手机 (比如通过微信)如果不能安装 改成以crt结尾即可
设置->其他设置->设备与隐私->信任的证书(这是我安卓手机上的路径)如果找不到 是这在设置页面搜索【证书】试下

charles代理&抓包配置_第11张图片

需要注意的是 我之前按照这些步骤配置 手机端一直连不上网 是因为我开了白名单 如果你也连不上网 什么配置都没错 这时候看下 工具->白名单
是否勾选启用

以上配置完可以满足我们抓包的需求,但是我本地需要远程代理url怎么处理呢 也就是我真机访问logisticsy-mrd.jd.com 其实访问的是我本地的localhost:80端口 再多加一个配置:

7,远程映射

工具->远程映射 添加映射 保存映射 确定使用映射

charles代理&抓包配置_第12张图片

charles代理&抓包配置_第13张图片

charles代理&抓包配置_第14张图片

注意:其实就是我Mac链接的热点的ip

charles代理&抓包配置_第15张图片

charles代理&抓包配置_第16张图片

8,至此为止 以上配置好后就能抓包&代理了

charles代理&抓包配置_第17张图片

微信环境下访问https://logisticsy-mrd.jd.com/drop
也能看到跟浏览器一样的页面了,每次代码更新,重新刷下页面就能看到最新代码编译结果了
charles代理&抓包配置_第18张图片

如果电脑端访问也要做映射
需要勾选macOS Proxy
比如https://logistics-mrd.jd.com/express/#/ 代理到我本机80端口的服务了

charles代理&抓包配置_第19张图片

你可能感兴趣的:(调试)