我正在使用以下代码在Android应用程序中执行HTTP请求:
try
{
HttpPost post = new HttpPost(<URL>);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
String responseText = EntityUtils.toString(entity);
parseResponce(responseText);
}
catch (Exception e)
{
Log.e("http post error : ", e.getMessage());
}
请求正在使用android 2.3,但我没有在Android 4.0.4中收到回复。 为什么不呢?
答案 0 :(得分:1)
看看这个blog post。
问题很可能是您在主UI线程上执行可能很昂贵的操作。无法知道HTTP请求可以花多长时间,因此您应该使用AsyncTask
将工作卸载到后台线程。
之所以能够在Gingerbread上运行,而不是在ICS上运行,是因为Android 4.0对于滥用UI线程要严格得多(如果滥用它会导致应用程序崩溃)。
答案 1 :(得分:0)
我猜你因为在UI线程上执行网络操作而遇到了麻烦。尝试使用AsyncTask或Java线程框架。