package com.iplatform.base.util; import com.fasterxml.jackson.databind.node.ObjectNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; import java.util.Map; public class RestTemplateUtils { protected static final Logger logger = LoggerFactory.getLogger(RestTemplateUtils.class); /** * 请求远程调用,输入xml格式数据 * @param url * @param xml * @param restTemplate * @return * @date 2023-08-10 */ public static final String postXml(String url, String xml, RestTemplate restTemplate){ HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/xml; charset=UTF-8"); headers.setContentType(type); HttpEntity requestEntity = new HttpEntity<>(xml, headers); ResponseEntity responseEntity = restTemplate.postForEntity(url, requestEntity, String.class); try{ logger.debug("responseEntity = "+responseEntity); return responseEntity.getBody(); // return new String(Objects.requireNonNull(responseEntity.getBody()).getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8); }catch (Exception e){ logger.error("postXml异常,url=" + url + ", " + e.getMessage(), e); return null; } } /** * 发送GET请求 * @param url 请求地址 * @param restTemplate * @return * @date 2023-07-16 * @date 2023-08-10 方法抽象的不好,废弃。 */ @Deprecated public static final ObjectNode getData(String url, RestTemplate restTemplate) { HttpHeaders headers = new HttpHeaders(); headers.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"); // headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity> requestEntity = new HttpEntity<>( headers); ResponseEntity response = restTemplate.exchange( url, HttpMethod.GET, requestEntity, ObjectNode.class); logger.debug(response.toString()); return response.getBody(); } }