1.介绍

HttpClient是Apache HttpComponents项目的一部分,该项目提供了一组专注于HTTP和相关协议的低级Java组件的工具集。HttpClient最基本的功能是执行HTTP方法。

在这个简短的教程中,我们将讨论如何添加参数HttpClient请求。我们将学习如何使用UriBuilder和字符串名值对NameValuePair类似地,我们将看到如何使用UrlEncodedFormEntity

2.将参数添加到HttpClient请求使用UriBuilder

UriBuilder帮助我们通过构建器模式轻松地创建uri和添加参数。我们可以添加参数使用字符串名称-值对,或利用NameValuePair我们的课程就是为了这个目的

在这个例子中,最终的URL应该是这样的:

https://example.com?param1=value1¶m2=value2

让我们看看如何使用字符串名称-值对:

public CloseableHttpResponse sendHttpRequest() {HttpGet HttpGet = new HttpGet("https://example.com");URI URI = new URIBuilder(httpGet.getURI()) .addParameter("param1", "value1") .addParameter("param2", "value2") .build();((HttpRequestBase) httpGet) .setURI (uri);CloseableHttpResponse response = client.execute(httpGet);client.close ();}

还有,我们可以用NameValuePair列表HttpClient要求:

public CloseableHttpResponse sendHttpRequest() {List nameValuePairs = new ArrayList();nameValuePairs。添加(新BasicNameValuePair(“param1”、“value1”));nameValuePairs。添加(新BasicNameValuePair(“param2”、“value2”));HttpGet HttpGet = new HttpGet("https://example.com");URI URI = new URIBuilder(httpGet.getURI()) .addParameters(nameValuePairs) .build();((HttpRequestBase) httpGet) .setURI (uri);CloseableHttpResponse response = client.execute(httpGet);client.close (); }

同样的,UriBuilder可以用来向其他HttpClient请求方法添加参数。

3.将参数添加到HttpClient请求使用UrlEncodedFormEntity

另一种方法是利用UrlEncodedFormEntity:

public CloseableHttpResponse sendHttpRequest() {List nameValuePairs = new ArrayList();nameValuePairs。添加(新BasicNameValuePair(“param1”、“value1”));nameValuePairs。添加(新BasicNameValuePair(“param2”、“value2”));HttpPost HttpPost = new HttpPost(“https://example.com”);httpPost。setEntity(新UrlEncodedFormEntity (nameValuePairs StandardCharsets.UTF_8));CloseableHttpResponse response = client.execute(httpPost);client.close (); }

请注意,UrlEncodedFormEntity不能用于GET请求,因为GET请求没有可以包含实体的主体。

4.结论

在这个例子中,我们展示了如何向HttpClient请求添加参数。另外,所有这些示例和代码片段的实现都可以在上面找到GitHub

通用的底部

通过。开始使用Spring 5和Spring Boot 2学习的春天课程:

>>查看课程
本文评论关闭!