apache HttpClient:使用SingleClientConnManager无效

时间:2013-09-19 22:12:38

标签: java apache apache-httpclient-4.x

我收到java.lang.IllegalStateException:无效使用SingleClientConnManager:仍然分配了连接。我使用的代码如下:

        HttpResponse targetResponse = getHttpClient(true).execute(post,
                localContext);

        BufferedReader rd = new BufferedReader(new InputStreamReader(
                targetResponse.getEntity().getContent()));

        String line = new String();
        while ((line = rd.readLine()) != null) {
            if (!line.contains("attr1") && !line.contains("attr2"))
                continue;
            String[] splits = line.split(": ");
            if (splits[0].contains("attr1")) {
                attr1 = splits[1].trim();
            } else {
                attr2 = splits[1].trim();
            }

            if (attr1 != null && attr2 != null)
                break;
        }

我的理解是,只要我执行targetResponse.getEntity(),就应该使用该实体。我是否还需要显式调用EntityUtils.consume()?

1 个答案:

答案 0 :(得分:0)

如果您还没有使用EntityUtils.consume()来使用流中的任何剩余内容,那么您应该使用它。

或者接受@ dnault的建议并关闭该流。