Apache HTTPClient自定义HTTP标头
Contents
1. 概述
在本教程中,我们将了解如何使用 HttpClient 设置自定义标头。
如果您想更深入地挖掘并学习可以使用 HttpClient 做的其他很酷的事情- 前往HttpClient 教程 。
2. 根据请求设置标头 - 4.3 及更高版本
HttpClient 4.3 引入了一种构建请求的新方法——RequestBuilder。要设置标题,我们将使用构建器上的setHeader方法:
HttpClient client = HttpClients.custom().build();
HttpUriRequest request = RequestBuilder.get()
.setUri(SAMPLE_URL)
.setHeader(HttpHeaders.CONTENT_TYPE, "application/json")
.build();
client.execute(request);
3. 根据请求设置标头 - 4.3 之前
在 HttpClient 4.3 之前的版本中,我们可以在请求上设置任何自定义标头,只需对请求进行简单的setHeader调用:
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(SAMPLE_URL);
request.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
client.execute(request);
正如我们所见,我们直接在请求中将Content-Type设置为自定义值 - JSON。
4. 在客户端设置默认标题
除了在每个请求上设置标头之外,我们还可以将其配置为客户端本身的默认标头:
Header header = new BasicHeader(HttpHeaders.CONTENT_TYPE, "application/json");
List<Header> headers = Lists.newArrayList(header);
HttpClient client = HttpClients.custom().setDefaultHeaders(headers).build();
HttpUriRequest request = RequestBuilder.get().setUri(SAMPLE_URL).build();
client.execute(request);
当所有请求的标头都需要相同时(例如自定义应用程序标头),这非常有用。