gpt4 book ai didi

Android 应用程序无法通过代理连接到模拟器中的本地 IP

转载 作者:可可西里 更新时间:2023-11-01 16:34:47 25 4
gpt4 key购买 nike

我需要能够在我的应用程序和与之通信的 HTTP 服务器之间插入一个代理。 HTTP 服务器运行在局域网中的另一台机器上。代理与模拟器在同一台机器上运行。

我正在使用 android-10,并且在 Ubuntu 和 Windows 7 上遇到了同样的问题。

如果我这样启动模拟器:

emulator.exe @default

然后应用程序将正常连接。

但是,如果我这样启动应用程序:

emulator.exe @default -http-proxy 127.0.0.1:8008

从互联网浏览器(向 Google)发出的请求将通过代理,但应用程序无法建立连接。

我已经尝试在 APN 中设置代理设置,并使用我本地计算机的 LAN IP 地址。

应用程序使用 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 请求到达代理。

关于如何继续解决此问题的任何建议?

最佳答案

您应该使用 10.0.2.2 而不是 127.0.0.1。 Android 认为您电脑的本地主机是 10.0.2.2。

关于Android 应用程序无法通过代理连接到模拟器中的本地 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com