Android 127.0.0.1(环回)连接 : Works on WiFi, 3G/4G 失败

标签 android networking mobile-webkit loopback 3g-network

我的应用程序嵌入了一个本地 http 服务器,可以通过位于 URL 的环回设备访问:http://127.0.0.1:8080/

它在启用 WiFi 的情况下工作正常,在没有外部网络(没有 WiFi,没有 3G)的情况下也可以正常工作,但是当禁用 WiFi 并启用 3G 时它会失败。

通过 adb shell 连接并执行“netcfg”我可以看到环回设备始终处于启用状态:

shell@android:/ $ netcfg
...
lo       UP               127.0.0.1/8   0x00000049 00:00:00:00:00:00
...

Alos "ping 127.0.0.1"在打开/关闭 WiFi 或 3G 时继续工作。

有什么想法吗?

更新: 添加到拼图中。从我的开发计算机转发 tcp 端口:

$ adb forward tcp:8080 tcp:8080

然后我尝试使用 http://127.0.0.1:8080/ 从我的 PC 连接.它可以工作,但是当使用在 Android 设备上运行的浏览器时它继续失败。

2015 年 6 月 1 日更新: 在 3G 上工作时,我在 adb logcat 上看到很多类似的相关错误:

W/ContextImpl(  504): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendStickyBroadcast:1239 com.android.server.TelephonyRegistry$3.onReceive:818 android.app.LoadedApk$ReceiverDispatcher$Args.run:788 android.os.Handler.handleCallback:725 android.os.Handler.dispatchMessage:92

E/CellLocation( 8336): create GsmCellLocation

触发 Gsm Activity 以连接到环回设备对我来说没有任何意义。

更新 2015-06-01 (2): 我设法安装了wget /data/data/com.XXXX.yyy/files/appFiles/bin

然后我通过“adb shell”->“run-as com.XXXX.yyy”连接,最后执行: wget -O - "http://127.0.0.1:8080/ "

我工作正常,所以我可以丢弃任何在本地主机上禁用环回访问的奇怪安全设置,所以我猜它与 WebView/WebViewClient 试图错误地使用 3G 外部代理访问环回有关。现在我想知道是否可以在 WebView 上禁用代理。

最佳答案

最后看起来是 WebView 尝试访问外部代理的问题,即使是对于回溯界面也是如此。我按照建议的解决方案解决了这个问题:WebView android proxy

关于Android 127.0.0.1(环回)连接 : Works on WiFi, 3G/4G 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30545702/

相关文章:

android - 无法扩展 ListFragment - "Call requires API level 11"

networking - iPhone/Android响应ARP请求的策略是什么

networking - 套接字性能飙升

c++ - 使网络更改永久化 - C++

css - 限制 webkit-overflow-scrolling

jquery - Mobile WebKit按钮点击伪类

android - 标志参数是什么意思以及机器人设备可能的最小值和最大值的范围是什么

Android studio如何判断显示哪个布局

android - 我们有办法将完整源代码包含到 APK 中吗?

css - :before{content} Not Recognized by Mobile Webkit 中的转义 Unicode 字符