我们有时候在本地调试的时候,使用charles抓取向本地服务发送的请求的,发现无法抓取。
charles官方也作了相应说明:
大概意思就是 某些系统使用的是硬编码不能使用localhost进行传输,所以当我们连接到 localhost的时候,不能被charles 抓取。
解决方法
使用 http://localhost.charlesproxy.com/ (charles启动后 localhost.charlesproxy.com 默认会指向127.0.0.1)代替 http://localhost/。
如果不想使用限定地址http://localhost.charlesproxy.com/ ,也可以在 hosts文件中配置: 127.0.0.1 xxx.test.com
案例
如抓取postman 请求本地接口的包,如下:
1、设置postman proxy指向系统代理:
2、使用 http://localhost.charlesproxy.com/ 代替localhost:
3、查看抓包结果:
可以看到抓包成功