2014-09-23 54 views
0

我有org.apache.http.HttpResponse对象,我在代码的不同位置使用该对象。其中一个地方是伐木。如何在不使用HttpEntity的情况下读取?

的问题是,当我运行下面的日志代码:

HttpEntity entity = response.getEntity(); 
try { 
    String content = Base64.encodeToString(
      EntityUtils.toByteArray(entity), Base64.DEFAULT); 
    sb.append(content + "\r\n"); 
} catch (Exception e) { 
    sb.append("\r\n\r\n====EXCEPTION=====\r\n" + e.toString() 
      + "\r\n"); 
} 

,比我尝试阅读在实际处理代码输入的内容,导致代码抛出以下异常:

java.lang.IllegalStateException: Content has been consumed 

我的问题是:如何在不使用日志代码的情况下读取实体?

UPDATE 这里是我用来变换的HttpResponse字符串函数的全码:

​​
+0

请在“response.getEntity();”之前发布您的代码 – mikejonesguy 2014-09-23 17:04:42

+0

请参阅更新... – 2014-09-23 18:23:14

+0

您可以尝试“标记”实体输入流,然后重置它,但我不确定它实际上是否可标记 – njzk2 2014-09-23 18:32:25

回答

0

确定。所以我最终做的是实现我自己的HttpEntity类,而不仅仅是使用response.setEntity(...)来替换以前的实体。该类将结果存储为二进制数组,并根据需要多次返回结果。

相关问题