0

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

4

2 回答 2

1

看看这篇博文

问题很可能是您在主 UI 线程上执行了可能代价高昂的操作。无法知道 HTTP 请求可能需要多长时间,因此您应该使用AsyncTask例如 .

这适用于 Gingerbread 但不适用于 ICS 的原因是因为 Android 4.0 对 UI 线程的滥用更加严格(如果滥用它,它甚至会导致应用程序崩溃)。

于 2012-10-07T15:55:56.587 回答
0

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

于 2012-10-07T15:52:24.313 回答