shikeyin
2024-01-11 65da8373531677b1c37a98f53eaa30c892f35e5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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<String> requestEntity = new HttpEntity<>(xml, headers);
        ResponseEntity<String> 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<Map<String, Object>> requestEntity = new HttpEntity<>( headers);
        ResponseEntity<ObjectNode> response = restTemplate.exchange( url, HttpMethod.GET, requestEntity, ObjectNode.class);
        logger.debug(response.toString());
        return response.getBody();
    }
}