HttpEntity<String> request = new HttpEntity<>(headers);如何添加参数
时间: 2024-12-10 11:44:54 浏览: 7
http、restTemplate请求资源(含带头部信息)
5星 · 资源好评率100%
在使用`HttpEntity<String>`构建HTTP请求体时,如果你想添加参数,通常会将参数序列化成JSON字符串或者URL编码后的查询字符串。这里有一个示例:
1. **对于JSON数据**:
```java
HashMap<String, String> parameters = new HashMap<>();
parameters.put("key1", "value1");
parameters.put("key2", "value2");
String jsonContent = new Gson().toJson(parameters); // 使用Gson或其他JSON库进行序列化
HttpEntity<String> request = new HttpEntity<>(jsonContent, headers);
```
这里的`headers`可以包含Content-Type信息,通常设置为`"application/json"`。
2. **对于URL查询参数**:
```java
Map<String, String> queryParameters = new LinkedHashMap<>(); // 保持插入顺序
queryParameters.put("param1", "value1");
queryParameters.put("param2", "value2");
String encodedParams = UriComponentsBuilder.fromQueryTemplate()
.replaceQueryParam("", UriComponent.encode(queryParameters.toString(), StandardCharsets.UTF_8))
.build()
.toUriString();
HttpEntity<String> request = new UrlEncodedFormEntity(encodedParams.split("&"), headers);
```
这里假设`headers`没有指定Content-Type,因为GET请求通常不需要主体。
阅读全文