// 上传
R result = HttpUtils.doUpload(url,data,fqPeList,HttpUtils.getHttpHeaders(httpHeads), R.class);
具体工具类
public class HttpUtils {
private static RestTemplate restTemplate = createRestTemplate();
// 处理https证书异常问题
public static RestTemplate createRestTemplate() {
try {
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
// 信任所有
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
sslContext.init(null, trustAllCerts, new SecureRandom());
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setBufferRequestBody(false);
requestFactory.setHttpClient(HttpClients.custom()
.setSSLContext(sslContext)
.setSSLHostnameVerifier(new NoopHostnameVerifier())
.build());
return new RestTemplate(requestFactory);
} catch (NoSuchAlgorithmException | KeyManagementException e) {
throw new RuntimeException(e);
}
}
// post请求
public static <T> T doPost(String url, String data, HttpHeaders httpHeaders, Class<T> resultClazz){
HttpEntity<Object> requestEntity = new HttpEntity<Object>(data, httpHeaders);
ResponseEntity<T> responseEntity = restTemplate.postForEntity(url, requestEntity, resultClazz);
T resut = responseEntity.getBody();
return resut;
}
// get请求
public static <T> T doGet(String url, HttpHeaders httpHeaders, Class<T> resultClazz){
HttpEntity<Object> requestEntity = new HttpEntity<Object>(null, httpHeaders);
ResponseEntity<T> responseEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, resultClazz);
T resut = responseEntity.getBody();
return resut;
}
// 获取http请求头
public static HttpHeaders getHttpHeaders(Map<String,String> map){
HttpHeaders requestHeaders = new HttpHeaders();
if(!Objects.isNull(map) && map.size() > 0){
map.forEach((key,value)->{
requestHeaders.add(key,value);
});
}
return requestHeaders;
}
//上传文件
public static <T> T doUpload(String url, String data, List<File> files, HttpHeaders httpHeaders, Class<T> resultClazz){
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
for(File file : files){
body.add("files", new FileSystemResource(file));
}
body.add("content", data);
HttpEntity<Object> requestEntity = new HttpEntity<Object>(body, httpHeaders);
ResponseEntity<T> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, resultClazz);
return responseEntity.getBody();
}
}
处理证书异常问题依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>