抓不到请求的原因
大家都知道 http协议下层是tcp协议,tcp协议都是内置在操作系统里面的,我们最多只能使用tcp协议对外暴露的socket接口来进行编程, 我们是无法修改操作系统本身的tcp协议的实现的。
但是http协议不同,http协议 都是各个开发者自己实现的, 换句话说 你要实现什么样的http客户端,这个客户端对http协议实现的好坏,实现了多少,支持哪些细节都是你自己决定的。 比如说android上 最有名的okhttp 就是一个http客户端的实现。
既然是自己实现,那就有说法了,虽然你系统设置了代理,但是我完全可以不使用你的代理(或者说我压根就没实现http协议中 proxy的部分)。 这样自然就会像大厂中的某些app一样, 你虽然设置了代理 但是你还是无法抓包。
因为人家http协议的客户端** 压根就没有使用你系统设置的 代理**。
看源码
想明白这个,我们再带着目的 去看源码 就很简单了。
首先okhttp 是肯定有实现http代理的部分的,否则我们每天也不可能使用代理 愉快的进行抓包。 那么既然有大厂的app 抓不到,那么肯定是某些属性 动态设置了。
注意看下面的代码:
如果我这样设置了,你就会发现 你的app的接口 也会抓不到了。
继续看源码: