默认HTTP请求在Android 4.0.4上不起作用

时间:2012-10-07 15:49:11

标签: android

我正在使用以下代码在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中收到回复。  为什么不呢?

2 个答案:

答案 0 :(得分:1)

看看这个blog post

问题很可能是您在主UI线程上执行可能很昂贵的操作。无法知道HTTP请求可以花多长时间,因此您应该使用AsyncTask将工作卸载到后台线程。

之所以能够在Gingerbread上运行,而不是在ICS上运行,是因为Android 4.0对于滥用UI线程要严格得多(如果滥用它会导致应用程序崩溃)。

答案 1 :(得分:0)

我猜你因为在UI线程上执行网络操作而遇到了麻烦。尝试使用AsyncTask或Java线程框架。