add HttpClient配置类、API结果对象、创建并配置HttpGet请求
parent
56bce25f96
commit
94709d3a74
@ -0,0 +1,80 @@
|
||||
package hw.tagApi.common.config;
|
||||
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
||||
import org.apache.http.impl.conn.SystemDefaultRoutePlanner;
|
||||
import org.apache.http.impl.conn.DefaultProxyRoutePlanner;
|
||||
import org.apache.http.HttpHost;
|
||||
import org.apache.http.client.config.RequestConfig;
|
||||
import org.apache.http.conn.routing.HttpRoutePlanner;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.net.ProxySelector;
|
||||
|
||||
/**
|
||||
* HttpClient配置类
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-04-15
|
||||
*/
|
||||
@Configuration
|
||||
public class HttpClientConfig {
|
||||
|
||||
@Value("${http.client.connect-timeout:30000}")
|
||||
private int connectTimeout;
|
||||
|
||||
@Value("${http.client.socket-timeout:30000}")
|
||||
private int socketTimeout;
|
||||
|
||||
@Value("${http.client.connection-request-timeout:30000}")
|
||||
private int connectionRequestTimeout;
|
||||
|
||||
@Value("${http.client.max-total:200}")
|
||||
private int maxTotal;
|
||||
|
||||
@Value("${http.client.default-max-per-route:20}")
|
||||
private int defaultMaxPerRoute;
|
||||
|
||||
@Value("${http.client.proxy-host:}")
|
||||
private String proxyHost;
|
||||
|
||||
@Value("${http.client.proxy-port:0}")
|
||||
private int proxyPort;
|
||||
|
||||
/**
|
||||
* 配置HttpClient
|
||||
*/
|
||||
@Bean
|
||||
public CloseableHttpClient httpClient() {
|
||||
// 创建连接池管理器
|
||||
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
|
||||
connectionManager.setMaxTotal(maxTotal);
|
||||
connectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute);
|
||||
|
||||
// 配置请求参数
|
||||
RequestConfig requestConfig = RequestConfig.custom()
|
||||
.setConnectTimeout(connectTimeout)
|
||||
.setSocketTimeout(socketTimeout)
|
||||
.setConnectionRequestTimeout(connectionRequestTimeout)
|
||||
.build();
|
||||
|
||||
// 配置代理(如果需要)
|
||||
HttpRoutePlanner routePlanner = null;
|
||||
if (proxyHost != null && !proxyHost.isEmpty() && proxyPort > 0) {
|
||||
HttpHost proxy = new HttpHost(proxyHost, proxyPort);
|
||||
routePlanner = new DefaultProxyRoutePlanner(proxy);
|
||||
} else {
|
||||
routePlanner = new SystemDefaultRoutePlanner(ProxySelector.getDefault());
|
||||
}
|
||||
|
||||
// 创建HttpClient
|
||||
return HttpClients.custom()
|
||||
.setConnectionManager(connectionManager)
|
||||
.setDefaultRequestConfig(requestConfig)
|
||||
.setRoutePlanner(routePlanner)
|
||||
.build();
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package hw.tagApi.service.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* API结果对象
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-04-15
|
||||
*/
|
||||
public class ApiResponse {
|
||||
|
||||
/** 功能代码 */
|
||||
@JsonProperty("CASE")
|
||||
private String caseCode;
|
||||
|
||||
/** 结果内容 */
|
||||
@JsonProperty("RESULT")
|
||||
private List<ApiContent> result;
|
||||
|
||||
public String getCaseCode() {
|
||||
return caseCode;
|
||||
}
|
||||
|
||||
public void setCaseCode(String caseCode) {
|
||||
this.caseCode = caseCode;
|
||||
}
|
||||
|
||||
public List<ApiContent> getResult() {
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setResult(List<ApiContent> result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ApiResponse{" +
|
||||
"CASE='" + caseCode + '\'' +
|
||||
", RESULT=" + result +
|
||||
'}';
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue