问题描述
在使用Charles
工具抓包的时候会导致手机上部分应用网络不可用,而且当Charles
关闭后手机就没有网络可以使用,需要要关闭手机代理后才能正常访问网络。
然而下次抓包还需要手动配置代理,相当麻烦,这里使用手机的自动代理模式可解决代理配置来回切换的问题。
解决方法
首先新建一个proxy.pac
的文件,文件内容如下,url
为请求路径,host
为域名,根据这两个参数可以进行是否进行代理的配置。
代码描述的意思就是当域名为xxx
的时候,将请求发送至代理服务器,代理服务器地址为Charles
的地址即可,如果域名不为xxx
则不使用代理转发,return "DIRECT";
表示不进行代理转发。
function FindProxyForURL(url, host){
if(host == "xxxx" ) {
return "PROXY 192.168.2.82:8888";
}
return "DIRECT";
}
将配置文件放到服务器上,这里使用mac
自带的服务器,开启Apache
服务器:sudo apachectl -k start
浏览器中输入http://localhost/
,如果显示It works
说明服务器开启成功,将配置文件丢入Apache
根目录:/Library/WebServer/Documents
。
打开手机,在网络中选取对应的网络,进入代理设置,选择自动代理,输入proxy.pac
文件所在地址,即mac
的IP
地址+proxy.pac
,如下图,然后存储代理配置,退出代理配置关闭该网络、再打开网络后代理配置就会生效。
切记,修改配置文件后要关闭网络打开网络后新的配置才会生效。