springboot httpclient封装
时间: 2023-09-18 11:15:04 浏览: 69
在使用Spring Boot中封装HttpClient时,可以使用Apache HttpClient库。以下是一个简单的封装示例:
1. 添加依赖
首先,在Maven或Gradle项目的构建文件中添加Apache HttpClient的依赖:
Maven:
```xml
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
```
Gradle:
```groovy
implementation 'org.apache.httpcomponents:httpclient:4.5.13'
```
2. 创建Http请求封装类
创建一个名为HttpClientUtil的Java类,用于封装HttpClient的常用操作:
```java
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class HttpClientUtil {
private CloseableHttpClient httpClient;
public HttpClientUtil() {
httpClient = HttpClientBuilder.create().build();
}
public String doGet(String url) throws IOException {
HttpGet request = new HttpGet(url);
return executeRequest(request);
}
public String doPost(String url, Map<String, String> params) throws IOException {
HttpPost request = new HttpPost(url);
if (params != null && !params.isEmpty()) {
List<NameValuePair> nameValuePairs = new ArrayList<>();
for (Map.Entry<String, String> entry : params.entrySet()) {
nameValuePairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
request.setEntity(new UrlEncodedFormEntity(nameValuePairs));
}
return executeRequest(request);
}
private String executeRequest(HttpRequestBase request) throws IOException {
try (CloseableHttpResponse response = httpClient.execute(request)) {
HttpEntity entity = response.getEntity();
if (entity != null) {
return EntityUtils.toString(entity);
}
}
return null;
}
}
```
3. 使用封装类
现在,你可以在Spring Boot的任何组件中使用HttpClientUtil类进行HTTP请求。例如,在一个Controller中使用:
```java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
private HttpClientUtil httpClientUtil;
public MyController(HttpClientUtil httpClientUtil) {
this.httpClientUtil = httpClientUtil;
}
@GetMapping("/api/request")
public String makeRequest() {
try {
String response = httpClientUtil.doGet("https://example.com");
return response;
} catch (IOException e) {
e.printStackTrace();
return "Error";
}
}
}
```
以上示例演示了如何封装HttpClient并在Spring Boot应用程序中使用它进行GET请求。你可以根据自己的需求,进一步扩展封装类,支持更多的HTTP方法和功能。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)