我的笔记本电脑上运行了一个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服务器。
答案 0 :(得分:0)
机器是否可能不在您的网络上?即 - 它在路由器的另一边,在互联网上的某个地方?因为地址开始“10”。被保留为私人地址而不是可路由的。
答案 1 :(得分:0)
我有同样的问题,这就是我如何找出原因:
退出模拟器。启动本地服务器。在浏览器中,您应该能够访问“http:// localhost:8000 / user?username = tim”并获得一些响应。如果超时,您的服务器可能无法运行。在我的情况下,我的python服务器有一个断点设置,它被卡在那里。一旦我让它运行,我就可以在浏览器上看到响应,然后在模拟器中看到响应(使用10.0.2.2)。