ICS上的Android HTTPRequest失败:(

时间:2012-04-29 14:34:30

标签: android android-4.0-ice-cream-sandwich

这是我发出http请求的示例代码,但它没有这样做。这是我在LogCat中看到的错误日志。 http://pastebin.com/56AL8Dxu 我还在清单中添加了<uses-permission android:name="android.permission.INTERNET"></uses-permission>。请帮助我..在Android中制作简单的http请求真的很难吗?我来自.Net背景学习Android开发。

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();
  }

 }

2 个答案:

答案 0 :(得分:5)

如Logcat日志中所述:

  

04-29 19:59:53.072:E / AndroidRuntime(546):android.os.NetworkOnMainThreadException

执行testHTTP(),涉及主线程上的网络,这是不允许的。将其移至后台主题,或使用AsyncTask

答案 1 :(得分:1)

Ok Binyamin Sharet是正确的,我引用Android文档

  

当应用程序尝试在其主线程上执行网络操作时引发的异常。

     

仅针对Honeycomb SDK(3.0)或更高版本的应用程序进行此操作。针对早期SDK版本的应用程序可以在其主要事件循环线程上进行网络连接,但是非常不鼓励这样做。请参阅文档设计响应性。