Android HttpClient异常控制问题(管理器关闭)

时间:2012-02-05 16:10:18

标签: android exception httpclient

我的应用程序将一些字符串发布到我的服务器上 它使用HttpClient发送数据 所有功能都完美无任何问题..

如果我的手机处于联网状态,那么就是 我点击提交按钮 - >数据可以在我的服务器上发送。 (真的很好)

如果我的手机处于非网络(断开连接)状态(这意味着不使用wifi或3g ......) 我点击提交按钮 - >它将错误对话框显示为“您必须检查网络”

但问题是......
一旦(约0.5~1.5秒)我点击wifi启用按钮然后点击提交按钮,
HttpClient后执行显示异常问题。(FC)
我可以控制异常问题吗? 我想显示错误对话框但是,例外,我无法控制。
我认为在启用wifi(或3g)时,执行会发生问题。

这是错误句子 02-06 00:48:41.250:E / AndroidRuntime(20183):引起:java.lang.IllegalStateException:管理器已关闭。

来源

(...ready for setting params, and string datas..and so on)

            HttpPost httpPost = new HttpPost(url);
            try {
                httpPost.setEntity(mpEntity);
                httpPost.addHeader("cookie", cookie);

                //↓This execute is problem. How can I control exception?
                HttpResponse response = httpClient.execute(httpPost);

                HttpEntity resEntity = response.getEntity();
                InputStream content = resEntity.getContent();
                return content;
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            httpClient.getConnectionManager().shutdown();
            return null;
        }

1 个答案:

答案 0 :(得分:3)

我认为有问题的一行是

        httpClient.getConnectionManager().shutdown();

This is the original Apache documentation,没有更多代码(以及完整的堆栈跟踪)很难理解发生了什么。我认为这只是糟糕的API使用