package com.dy.pipIrrWechat.util;
|
|
import com.alibaba.fastjson2.JSONObject;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.*;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.MultiValueMap;
|
import org.springframework.web.client.RestTemplate;
|
|
import java.io.IOException;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* @author ZhuBaoMin
|
* @date 2024-03-06 13:47
|
* @LastEditTime 2024-03-06 13:47
|
* @Description
|
*/
|
|
@Component
|
public class RestTemplateUtil {
|
|
@Autowired
|
private RestTemplate restTemplate;
|
|
//@Qualifier("RestTemplateWithCert")
|
//@Resource
|
//private RestTemplate restTemplate;
|
|
public JSONObject get(String url, Map<String, Object> queryParams) throws IOException {
|
return get(url, queryParams, new HashMap<>(1));
|
}
|
|
public JSONObject get(String url, Map<String, Object> queryParams, Map<String, String> headerParams) throws IOException {
|
String tempUrl = setParamsByAppendUrl(queryParams, url);
|
HttpHeaders headers = new HttpHeaders();
|
headerParams.forEach(headers::add);
|
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(null, headers);
|
ResponseEntity<String> response = restTemplate.exchange(tempUrl, HttpMethod.GET, httpEntity, String.class);
|
return JSONObject.parseObject(response.getBody());
|
}
|
|
public JSONObject getHeaders(String url, Map<String, Object> queryParams, Map<String, String> headerParams) throws IOException {
|
String tempUrl = setParamsByAppendUrl(queryParams, url);
|
HttpHeaders headers = new HttpHeaders();
|
headerParams.forEach(headers::add);
|
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(null, headers);
|
ResponseEntity<String> response = restTemplate.exchange(tempUrl, HttpMethod.GET, httpEntity, String.class);
|
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("headers", response.getHeaders());
|
jsonObject.put("body", response.getBody());
|
return jsonObject;
|
}
|
|
public JSONObject get2(String url, Map<String, Object> queryParams, Map<String, String> headerParams) throws IOException {
|
String tempUrl = setParamsByPath(queryParams, url);
|
HttpHeaders headers = new HttpHeaders();
|
headerParams.forEach(headers::add);
|
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(null, headers);
|
ResponseEntity<String> response = restTemplate.exchange(tempUrl, HttpMethod.GET, httpEntity, String.class, queryParams);
|
return JSONObject.parseObject(response.getBody());
|
}
|
|
public JSONObject post(String url, String json, Map<String, String> headerParams) {
|
HttpHeaders headers = new HttpHeaders();
|
headerParams.forEach(headers::add);
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
|
HttpEntity<String> httpEntity = new HttpEntity<>(json, headers);
|
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
|
return JSONObject.parseObject(response.getBody());
|
}
|
|
private String setParamsByPath(Map<String, Object> queryParams, String url) {
|
// url?id={id}&name={name}
|
if (queryParams == null || queryParams.isEmpty()) {
|
return url;
|
}
|
StringBuilder sb = new StringBuilder();
|
try {
|
for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
|
sb.append("&").append(entry.getKey()).append("=").append("{").append(entry.getKey()).append("}");
|
}
|
if (!url.contains("?")) {
|
sb.deleteCharAt(0).insert(0, "?");
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return url + sb;
|
}
|
|
private String setParamsByAppendUrl(Map<String, Object> queryParams, String url) {
|
// url?id=1&name=zzc
|
if (queryParams == null || queryParams.isEmpty()) {
|
return url;
|
}
|
StringBuilder sb = new StringBuilder();
|
try {
|
for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
|
sb.append("&").append(entry.getKey()).append("=");
|
sb.append(entry.getValue());
|
}
|
if (!url.contains("?")) {
|
sb.deleteCharAt(0).insert(0, "?");
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return url + sb;
|
}
|
|
}
|