whycxzp
2025-04-10 8f43ce26799c7c1b490507061fcc3c7d1b9e84e2
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.whyc.util;
 
import com.whyc.dto.ResultA200Dto;
import com.whyc.dto.ResultActmDto;
import com.whyc.dto.ResultActmBaseDto;
import org.springframework.http.*;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
 
public class TestParamHttpUtil {
 
 
 
    //post请求传入form-data 格式
    public static Object postForFormDataA200( RestTemplate restTemplate,String url,  MultiValueMap<String, Object> paramMap){
        HttpHeaders headers = new HttpHeaders();
        HttpMethod method = HttpMethod.POST;
        // 设置以表单的方式提交
        headers.add("Content-Type", MediaType.MULTIPART_FORM_DATA_VALUE);
        HttpEntity< MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(paramMap, headers);
        String results= null;
        try {
            ResponseEntity<String> response = restTemplate.exchange(url, method, requestEntity,String.class );
            results = response.getBody();
        } catch (RestClientException  e) {
            results=" {\n" +
                    "      \"code\": \"205\",\n" +
                    "      \"msg\": \"接口调用出错\",\n" +
                    "      \"data\": null,\n" +
                    "      \"count\": 0\n" +
                    "    }";
        }
        if(results==null){
            results=" {\n" +
                    "      \"code\": \"0\",\n" +
                    "      \"msg\": \"接口调用无返回\",\n" +
                    "      \"data\": null,\n" +
                    "      \"count\": 0\n" +
                    "    }";
        }
        Object dto= ActionUtil.getGson().fromJson(results, ResultA200Dto.class);
        return dto;
    }
 
    //post请求传入form-data 格式
    public static ResultActmBaseDto postForFormDataActm( RestTemplate restTemplate,String url,  MultiValueMap<String, Object> paramMap){
        HttpHeaders headers = new HttpHeaders();
        HttpMethod method = HttpMethod.POST;
        // 设置以表单的方式提交
        headers.add("Content-Type", MediaType.MULTIPART_FORM_DATA_VALUE);
        HttpEntity< MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(paramMap, headers);
        String results= null;
        try {
            ResponseEntity<String> response = restTemplate.exchange(url, method, requestEntity,String.class );
            results = response.getBody();
        } catch (RestClientException e) {
            results=" {\n" +
                    "      \"code\": \"205\",\n" +
                    "      \"msg\": \"接口调用出错\",\n" +
                    "      \"data\": null,\n" +
                    "      \"count\": 0\n" +
                    "    }";
        }
        if(results==null){
            results=" {\n" +
                    "      \"code\": \"0\",\n" +
                    "      \"msg\": \"接口调用无返回\",\n" +
                    "      \"data\": null,\n" +
                    "      \"count\": 0\n" +
                    "    }";
        }
        //对results字符串进行去空格处理,查看是否存在"code":200的字符串
        String resultsAfter = results.replaceAll("\\s*","");
        ResultActmBaseDto dto;
        if(resultsAfter.contains("code\":200")){
            dto= ActionUtil.getGson().fromJson(results, ResultActmDto.class);
        }else{
            dto= ActionUtil.getGson().fromJson(results, ResultActmBaseDto.class);
        }
 
 
        return dto;
    }
 
 
}