• RestTemplate 封装


    import com.alibaba.fastjson.JSON;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.commons.collections4.CollectionUtils;
    import org.apache.commons.collections4.MapUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.http.*;
    import org.springframework.stereotype.Component;
    import org.springframework.web.client.RestTemplate;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    @Slf4j
    @Component
    public class RestTemplateExchange {
    
    	@Autowired
    	@Qualifier("baseRestTemplate")
    	private RestTemplate baseRestTemplate;
    
    	public String sendGetForBody(String url, Map<String, String> headersMap) {
    		return parseResponseEntityForBody(sendParamsMapForResponseEntity(url, HttpMethod.GET, headersMap, null));
    	}
    
    	public String sendGetParamsMapForBody(String url, Map<String, String> headersMap, Map<String, Object> paramsMap) {
    		return parseResponseEntityForBody(sendParamsMapForResponseEntity(url, HttpMethod.GET, headersMap, paramsMap));
    	}
    
    	public String sendPostParamsMapJsonForBody(String url, Map<String, String> headersMap,
    			Map<String, Object> paramsMap) {
    		return sendParamsMapJsonForBody(url, HttpMethod.POST, headersMap, paramsMap);
    	}
    
    	public String sendPutParamsMapJsonForBody(String url, Map<String, String> headersMap,
    			Map<String, Object> paramsMap) {
    		return sendParamsMapJsonForBody(url, HttpMethod.PUT, headersMap, paramsMap);
    	}
    
    	public String sendDeleteParamsMapJsonForBody(String url, Map<String, String> headersMap,
    			Map<String, Object> paramsMap) {
    		return sendParamsMapJsonForBody(url, HttpMethod.DELETE, headersMap, paramsMap);
    	}
    
    	public String sendParamsMapJsonForBody(String url, HttpMethod httpMethod, Map<String, String> headersMap,
    			Map<String, Object> paramsMap) {
    		if (MapUtils.isNotEmpty(headersMap)) {
    			headersMap.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
    		}
    		return parseResponseEntityForBody(sendParamsMapForResponseEntity(url, httpMethod, headersMap, paramsMap));
    	}
    
    	public String sendGetParamsListForBody(String url, Map<String, String> headersMap, List<?> paramsList) {
    		return parseResponseEntityForBody(sendParamsListForResponseEntity(url, HttpMethod.GET, headersMap, paramsList));
    	}
    
    	public String sendPostParamsListJsonForBody(String url, Map<String, String> headersMap, List<?> paramsList) {
    		return sendParamsListJsonForBody(url, HttpMethod.POST, headersMap, paramsList);
    	}
    
    	public String sendPutParamsListJsonForBody(String url, Map<String, String> headersMap, List<?> paramsList) {
    		return sendParamsListJsonForBody(url, HttpMethod.PUT, headersMap, paramsList);
    	}
    
    	public String sendDeleteParamsListJsonForBody(String url, Map<String, String> headersMap, List<?> paramsList) {
    		return sendParamsListJsonForBody(url, HttpMethod.DELETE, headersMap, paramsList);
    	}
    
    	public String sendParamsListJsonForBody(String url, HttpMethod httpMethod, Map<String, String> headersMap,
    			List<?> paramsList) {
    		if (MapUtils.isNotEmpty(headersMap)) {
    			headersMap.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
    		}
    		return parseResponseEntityForBody(sendParamsListForResponseEntity(url, httpMethod, headersMap, paramsList));
    	}
    
    	public String parseResponseEntityForBody(ResponseEntity<String> responseEntity) {
    		if (responseEntity == null) {
    			throw new RuntimeException("http返回空");
    		}
    		if (!HttpStatus.OK.equals(responseEntity.getStatusCode())) {
    			throw new RuntimeException("http请求失败");
    		}
    		String body = responseEntity.getBody();
    		log.info(body);
    
    		return body;
    	}
    
    	public Map<String, String> sendGetForHeaders(String url, Map<String, String> headersMap,
    			Map<String, Object> paramsMap, List<String> headerKeyList) {
    		return parseResponseEntityForHeaders(sendParamsMapForResponseEntity(url, HttpMethod.GET, headersMap, paramsMap),
    				headerKeyList);
    	}
    
    	public Map<String, String> parseResponseEntityForHeaders(ResponseEntity<String> responseEntity,
    			List<String> headerKeyList) {
    		if (responseEntity == null) {
    			throw new RuntimeException("http返回空");
    		}
    		if (!HttpStatus.OK.equals(responseEntity.getStatusCode())) {
    			throw new RuntimeException("http请求失败");
    		}
    		HttpHeaders headers = responseEntity.getHeaders();
    
    		Map<String, String> headersMap = new HashMap<String, String>();
    		if (CollectionUtils.isNotEmpty(headerKeyList)) {
    			for (String headerKey : headerKeyList) {
    				headersMap.put(headerKey,
    						CollectionUtils.isEmpty(headers.get(headerKey)) ? null : headers.get(headerKey).get(0));
    			}
    		}
    
    		return headersMap;
    	}
    
    	public ResponseEntity<String> sendParamsMapForResponseEntity(String url, HttpMethod httpMethod,
    			Map<String, String> headersMap, Map<String, Object> paramsMap) {
    		HttpHeaders httpHeaders = null;
    		if (MapUtils.isNotEmpty(headersMap)) {
    			httpHeaders = new HttpHeaders();
    			for (Map.Entry<String, String> entry : headersMap.entrySet()) {
    				httpHeaders.add(entry.getKey(), entry.getValue());
    			}
    		}
    
    		StringBuffer urlStringBuffer = new StringBuffer(url);
    
    		HttpEntity<Object> httpEntity = null;
    		if (HttpMethod.GET.equals(httpMethod)) {
    			if (MapUtils.isNotEmpty(paramsMap)) {
    				urlStringBuffer.append("?");
    				int index = 0;
    				for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
    					if (index == 0) {
    						urlStringBuffer.append(entry.getKey()).append("=").append(entry.getValue());
    					} else {
    						urlStringBuffer.append("&").append(entry.getKey()).append("=").append(entry.getValue());
    					}
    					index++;
    				}
    			}
    			httpEntity = new HttpEntity<Object>(httpHeaders);
    		} else {
    			if (MapUtils.isNotEmpty(headersMap)
    					&& MediaType.APPLICATION_JSON_VALUE.equals(headersMap.get(HttpHeaders.CONTENT_TYPE))) {
    				httpEntity = new HttpEntity<Object>(JSON.toJSONString(paramsMap), httpHeaders);
    			} else {
    				httpEntity = new HttpEntity<Object>(paramsMap, httpHeaders);
    			}
    		}
    		ResponseEntity<String> responseEntity = baseRestTemplate.exchange(urlStringBuffer.toString(), httpMethod,
    				httpEntity, String.class);
    
    		return responseEntity;
    	}
    
    	public ResponseEntity<String> sendParamsListForResponseEntity(String url, HttpMethod httpMethod,
    			Map<String, String> headersMap, List<?> paramsList) {
    		HttpHeaders httpHeaders = null;
    		if (MapUtils.isNotEmpty(headersMap)) {
    			httpHeaders = new HttpHeaders();
    			for (Map.Entry<String, String> entry : headersMap.entrySet()) {
    				httpHeaders.add(entry.getKey(), entry.getValue());
    			}
    		}
    
    		HttpEntity<Object> httpEntity = null;
    		if (MapUtils.isNotEmpty(headersMap)
    				&& MediaType.APPLICATION_JSON_VALUE.equals(headersMap.get(HttpHeaders.CONTENT_TYPE))) {
    			httpEntity = new HttpEntity<Object>(JSON.toJSONString(paramsList), httpHeaders);
    		} else {
    			httpEntity = new HttpEntity<Object>(paramsList, httpHeaders);
    		}
    		ResponseEntity<String> responseEntity = baseRestTemplate.exchange(url, httpMethod, httpEntity, String.class);
    
    		return responseEntity;
    	}
    
    }
    

      

  • 相关阅读:
    kubernetes 之配置问题
    awk 输入文件包含某个关键字的整行记录或者某个字段
    Kubernetes资源在线生成工具
    使用print计算一串字符串各字符出现的个数
    Kubernetes 部署可视化dashboard管理面板
    nexus 3.37.302安装
    阿里云免费证书验证,nginx返回403,/.wellknown/pkivalidation/
    通过docker安装openldap并通过ldapadmin配置用户与第三方软件集成ldap配置
    kubernetes创建storageclass
    k8s快速生成一个deploymenet的yaml文件
  • 原文地址:https://www.cnblogs.com/zxf330301/p/13800778.html
Copyright © 2020-2023  润新知