8

我正在尝试编写一个可以在设备本身上运行的 http 代理服务器。其实需要想办法捕获设备产生的出站http流量。

到目前为止,我的代码正在编译,它基于此处找到的代码:http ://www.jtmelton.com/2007/11/27/a-simple-multi-threaded-java-http-proxy-server /

问题是对实际服务器的 http 请求会阻塞并且永远不会返回。

有没有更好的方法来编写这样的服务而不使设备生根?

4

3 回答 3

4

您应该检查 SandroProxy。如果使用 os 代理设置,或者在有根设备上使用 iptables 规则,则可以在无根设备上捕获流量。流量存储在本地 sqlite 数据库中。chrome devtools 也可以检查捕获的数据。要捕获应用程序中的流量,您应该检查插件的源代码。它具有 iptables 重定向和正确设置的所有代码。

查看谷歌源代码 HowToInterceptTrafficOnMyOwn 上的 wiki 链接

http://code.google.com/p/sandrop/wiki/HowToInterceptTrafficOnMyOwn

顺便说一句:由 Sandroproxy 支持发送 :)

于 2013-10-01T06:00:27.040 回答
0

我一直在使用一款名为 proxydroid 的软件将我的设备用作代理服务器,并且它是我发现的唯一一个不需要 root 的软件。我不确定它是否对您有任何帮助,但它是一个开源项目,代码可以在这里找到:

https://github.com/madeye/proxydroid

我注意到应用程序会在一段时间后冻结,或者如果一次发送大量请求,但我没有机会找出发生这种情况的原因。

于 2013-09-30T10:19:23.823 回答
0

忘记设置代理,使用 Facebook Stetho 库 ( http://facebook.github.io/stetho/ ) 查看来自模拟器/设备的所有 http 请求和响应

在此处输入图像描述

于 2017-04-12T10:26:27.283 回答