这是我发出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();
}
}
答案 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版本的应用程序可以在其主要事件循环线程上进行网络连接,但是非常不鼓励这样做。请参阅文档设计响应性。