无法从仿真器联系主机(10.0.2.2)

时间:2011-09-17 17:38:12

标签: android http

我的笔记本电脑上运行了一个python REST API服务器。我正在尝试在Android中编写一个rest客户端(使用Eclipse ADT等),使用Apache的客户端(org.apache.http.client)库来联系它。

代码非常简单,基本上可以执行以下操作 -

HttpGet httpget = new HttpGet(new URI("http://10.0.2.2:8000/user?username=tim"));
HttpResponse response = httpclient.execute(httpget);

然而,在执行时,它会因超时异常而异常。我甚至无法通过模拟器中的浏览器来访问URL。

例外情况

org.apache.http.conn.ConnectTimeoutException: Connect to /10.0.2.2:8000 timed out

但是,我尝试在笔记本电脑上使用Chrome上的cREST客户端,我可以很好地查询REST服务器。

2 个答案:

答案 0 :(得分:0)

机器是否可能不在您的网络上?即 - 它在路由器的另一边,在互联网上的某个地方?因为地址开始“10”。被保留为私人地址而不是可路由的。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Private_network

答案 1 :(得分:0)

我有同样的问题,这就是我如何找出原因:

退出模拟器。启动本地服务器。在浏览器中,您应该能够访问“http:// localhost:8000 / user?username = tim”并获得一些响应。如果超时,您的服务器可能无法运行。在我的情况下,我的python服务器有一个断点设置,它被卡在那里。一旦我让它运行,我就可以在浏览器上看到响应,然后在模拟器中看到响应(使用10.0.2.2)。