1.导入相关的依赖包和类:
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
2.创建一个 Map
对象,设置请求参数:
Map<String, Object> params = new HashMap<>();
params.put("key1", "value1");
params.put("key2", "value2");
3.将参数转换为 JSON 字符串:
ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(params);
4.创建一个 HttpClient
对象,并指定 POST 请求的 URL:
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost request = new HttpPost("http://example.com/api");
5.设置请求头和请求体:
request.setHeader("Content-Type", "application/json");
request.setEntity(new StringEntity(requestBody));
6.发送请求并获取响应:
HttpResponse response = httpClient.execute(request);
String responseBody = EntityUtils.toString(response.getEntity());
7.可以根据需要解析并处理响应数据,例如将返回的 JSON 字符串转换为 Map
对象:
Map<String, Object> responseMap = objectMapper.readValue(responseBody, new TypeReference<Map<String,Object>>(){});