首页 > 解决方案 > 如何使用 Apache httpclient5 从 SimpleHttpResponse 获取 HttpEntity

问题描述

我正在尝试从httpclient4迁移到httpclient5

CloseableHttpAsyncClient用来执行请求。

当使用httpclient4 httpClient.execute()时,期望HttpRequestUri作为第一个参数,并FutureCallable<httpResponse>作为第二个参数。

但是在httpclient5中,当您调用httpClient.execute()它时,它期望SimpleHttpRequest作为第一个参数,并FutureCallable<SimpleHttpResponse>作为第二个参数。

问题是我正在使用未来response.getEntity()completed方法,我必须HttpEntity出于正当理由使用。但是SimpleHttpResponse没有getEntity()办法。

有什么办法可以从中获取HttpEntitySimpleHttpResponse

解决这个问题的另一种方法是使用ClassicHttpRespose而不是SimpleHttpResponse,因为它有getEntity()方法。问题是该execute()方法没有将其作为有效参数接收。

总而言之,有没有办法从SimpleHttpResponse 使用实体?executeClassicHttpResponse

标签: javaapache-httpclient-4.xapache-httpclient-5.x

解决方案


推荐阅读