Say*_*jee 13 java fluent apache-httpclient-4.x
我正在使用apache的HttpClient(通过Fluent API).当我收到响应对象时,我首先做:
response.returnResponse().getStatusLine().getStatusCode()
Run Code Online (Sandbox Code Playgroud)
如果状态代码是4xx或5xx,我抛出异常,或者我返回内容:
response.returnContent().asBytes();
Run Code Online (Sandbox Code Playgroud)
这response是一个类型的对象Response.但是,当我运行这个时,我得到:
java.lang.IllegalStateException: Response content has been already consumed.
Run Code Online (Sandbox Code Playgroud)
我怎么能绕过这个?
Sot*_*lis 14
双方Response#returnResponse()并Response#returnContent()迫使HttpResponse InputStream被读取.由于您无法读取InputStream两次,因此库已放置标志并检查以断言InputStream尚未使用.
你不解决这个问题.你所做的是获取底层HttpResponse对象,并将状态代码和正文作为字节.
HttpResponse httpResponse = response.returnResponse();
httpResponse.getStatusLine().getStatusCode();
byte[] bytes = EntityUtils.toByteArray(httpResponse.getEntity());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4784 次 |
| 最近记录: |