Android浏览器无法连接到本地nanohttpd服务

时间:2015-06-26 13:10:43

标签: java android nanohttpd

我使用root方法创建一个服务WakefulBroadcastReceiver用于某些测试目的(请注意,我刚刚使用Activity启动服务器测试,同样的事情发生):

MyService.java

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d(TAG, "Server starting");

    // Create the server
    server = new WebServer(6666);
    new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                server.start();
            } catch (IOException e) {
                Log.d(TAG, e.getMessage());
            }
        }
    }).start();
    ...
    return START_STICKY;
}

WebServer.java:

public class WebServer extends NanoHTTPD {
  @Override
  public Response serve(IHTTPSession session) {
    Log.d(TAG, "Serving");

    return new NanoHTTPD.Response("<html><body>test</body></html>");
}

我{/ 1}}在/ system / app中使用push APK,因此无需先使用活动即可调用服务。然后重启shell。

我可以看到服务器的日志等待连接,然后:

  • 如果我使用adb使用wget http://127.0.0.1:6666我可以看到日志&#34;服务&#34;。
  • 如果我使用具有相同地址的设备浏览器(也尝试adb shell),则服务器尚未到达。

我使用API​​18和默认的Nexus7 AVD(也尝试使用localhost和三星平板电脑)但没有任何作用。在网络设置中没有配置代理。

我不明白为什么浏览器(在设备上)无法到达Genymotion上的6666端口(也在设备上)

这是清单:

127.0.0.1

1 个答案:

答案 0 :(得分:1)

我疯了,最后有人发给我这个链接: https://superuser.com/questions/188058/which-ports-are-considered-unsafe-on-chrome

端口6666被认为是不安全的...我希望它会写在页面上而不是无法到达服务器。