Android HTTP请求 Java.net.UnknownHostException

12

我想在安卓上发送一个HTTP请求。

我尝试使用以下代码:

void testHTTP()
 {
  HttpClient httpClient = new DefaultHttpClient();

  HttpUriRequest request = new HttpPost("http://www.google.com");

  try {
   HttpResponse response = httpClient.execute(request);

   //System.out.println("response protocol version: " + response.getProtocolVersion());
  } catch (ClientProtocolException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }
我在清单文件中设置了Internet权限。
我不断收到“java.net.UnknownHostException: www.google.com”错误提示。
我的最终目的是能够调用Web服务。因此,我最初尝试了ksoap2库和正确的URL,但得到了相同的结果。
我怀疑我的应用程序或模拟器设置有问题。
你能否给我一些指针,告诉我该从哪里查找问题?
如果有类似的可工作示例,那将非常有用。然后我可以检查,如果问题仍然存在,那么我就知道是我的开发设置有问题。
顺便说一下,我正在使用Mac Snow Leopard、Eclipse和Android 2.2作为设置。
谢谢
问候
6个回答

28

检查模拟器的日志信息。很可能是因为您没有在应用程序清单中请求INTERNET权限


2
这是我正在使用的代码:... <uses-permission android:name="android.permission.INTERNET"></uses-permission> </manifest> - Alex Poke
必须补充说明,我是在真实设备上操作的,而不是模拟器。 - Kinjal Dixit

11

我在模拟器上遇到了问题,网络图标显示没有服务,我无法连接到互联网。通常重新启动模拟器可以解决该问题。有一次,我不得不创建一个新的模拟器设备。

请检查模拟器/设备日志中是否有提示。您可以使用DDMS视图中的LogCat视图在Eclipse中查看它们。


1
重启模拟器解决了问题。 我应该检查浏览器看看它是否能够正常工作,但实际上它并没有。谢谢。 - Alex Poke

1

BenTobin的回答指引我找到了一个我之前忽略的问题。我已经尝试过多次重启模拟器,但是发现Wi-Fi信号显示为0格。我进入设置,关闭并重新打开Wi-Fi模式,同时打开并关闭飞行模式。这样问题就得到了解决,我的信号又回来了。


0

如果您在清单文件中具有访问互联网的权限并且WiFi已连接,则可能会在通过WiFi、以太网从计算机共享互联网时遇到问题。尝试重新启动计算机上的互联网共享。然后问题就可以得到解决。


0

如果你正在测试设备,请尝试重新启动你的 wifi 连接,这对我很有效。


0

删除您的 AVD,重新创建新的 AVD 并重新启动 Eclipse


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接