是否有一种简单的方法可以使HttpResponse重复?

时间:2016-11-29 22:25:11

标签: java apache-httpclient-4.x

我想发出一个http请求,然后返回HttpResponse对象。据我所知,如果我正确关闭HttpClient对象,这将无法工作,因为当另一个方法尝试获取返回的响应对象的getEntity()时,流将被关闭。

有没有办法强制HttpResponse对象保留响应并缓存它?

这是一个示例方法:

static HttpResponse get(String url) throws IOException {
    HttpGet httpGet = new HttpGet(url);
    try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
        HttpResponse httpResponse = httpClient.execute(httpGet);
        // do something here to persists the http response
        return httpResponse;
    }
}

以便另一种方法可以做到这一点:

void anotherMethod() {
    HttpResponse httpResponse = Utils.get("http://domain.com/site");
    String responseString = IOUtils.toString(httpResponse.getEntity().getContent());
}

我知道这可以使用流畅的界面完成。对于我的用例,我需要对DNS解析进行一些修改,以便我不能使用流畅的界面。

0 个答案:

没有答案