我需要能够在我的应用程序和与之通信的HTTP服务器之间插入代理。 HTTP服务器正在LAN上的另一台计算机上运行。代理与模拟器在同一台机器上运行。Android应用程序无法通过代理连接到模拟器中的本地IP
我采用了android-10,如果我启动模拟器这样我遇到在Ubuntu和Windows 7
这些相同的问题:
emulator.exe @default
则应用程序将正常连接。
但是,如果我开始喜欢这个应用程序:从互联网浏览器(谷歌来)由
emulator.exe @default -http-proxy 127.0.0.1:8008
请求都将通过代理,但应用程序无法建立连接。
我曾尝试在APN中设置代理设置,以及使用本地计算机的LAN IP地址。
应用程序IS使用HTTP(http://developer.android.com/reference/java/net/HttpURLConnection.html),所以代理应该能够解释请求。
我可以在代理关闭的情况下通过模拟器内的互联网浏览器访问服务器,但不能启用代理服务器。
我跑了以下行模拟器:
emulator.exe @default -http-proxy 127.0.0.1:8008 -debug-proxy
,发现请求被作为走出去:
http_service_connect: trying to connect to 192.168.3.131:8080
http_service_connect: using HTTP rewriter
tcp:192.168.3.131:8080(35): connecting
tcp:192.168.3.131:8080(35): connected to http proxy, sending header
tcp:192.168.3.131:8080(35): sending 39 bytes:
>> 43 4f 4e 4e 45 43 54 20 31 39 32 2e 31 36 38 2e CONNECT 192.168.
>> 33 2e 31 33 31 3a 38 30 38 30 20 48 54 54 50 2f 3.131:8080 HTTP/
>> 31 2e 31 0d 0a 0d 0a 1.1....
tcp:192.168.3.131:8080(35): header sent, receiving first answer line
tcp:192.168.3.131:8080(35): received 'HTTP/1.0 200 Connection established'
tcp:192.168.3.131:8080(35): receiving second answer line
tcp:192.168.3.131:8080(35): received ''
tcp:192.168.3.131:8080(35): connection succeeded
但是,没有GET或POST请求永远会向代理。
有关如何继续解决此问题的任何建议?
行。那么你怎么做到的?你能解释我也有同样的问题 – 2012-04-11 06:24:56
配置你的应用程序,以便直接与代理对话,就好像它是服务器。然后,代理将接收来自应用程序的服务器请求...并且可以将其配置为将这些请求转发给真实服务器(如果您愿意,可以修改请求)。 – Dan 2012-04-11 16:13:14
我的问题是,应用程序是由第三方开发的,我们没有源代码,无法将应用程序内部使用的网址更改为代理服务器,但仍需要测试代理服务器上的网络流量,希望有一些更完整很快回答 – rob 2012-07-06 10:38:03