千家信息网

如何理解restTemplateUtil中帮助类

发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,这期内容当中小编将会给大家带来有关如何理解restTemplateUtil中帮助类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。import com.zzb.bus
千家信息网最后更新 2025年01月29日如何理解restTemplateUtil中帮助类

这期内容当中小编将会给大家带来有关如何理解restTemplateUtil中帮助类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

import com.zzb.business.customerInfo.config.ReportConfig;import com.zzb.business.customerInfo.config.connection.PengYuanConfig;import org.springframework.core.io.FileSystemResource;import org.springframework.http.HttpEntity;import org.springframework.http.HttpMethod;import org.springframework.http.ResponseEntity;import org.springframework.http.client.ClientHttpResponse;import org.springframework.util.LinkedMultiValueMap;import org.springframework.util.MultiValueMap;import org.springframework.web.client.DefaultResponseErrorHandler;import org.springframework.web.client.RestTemplate;import java.io.File;import java.io.IOException;import java.util.Map;/** * @author edison_kwok */public class RestTemplateUtils {    /**     * 可以设置请求头参数和请求体参数的post方法     *     * @param url     * @param headers     * @param params     * @param restTemplate     * @return     */    public static String postConnect(String url, Map headers, Map params, RestTemplate restTemplate) {        //header信息,包括了http basic认证信息        MultiValueMap headersMap = new LinkedMultiValueMap<>();        for (String key : headers.keySet()) {            headersMap.add(key, headers.get(key));        }        //body请求体部分        MultiValueMap bodyMap = new LinkedMultiValueMap<>();        for (String key : params.keySet()) {            bodyMap.add(key, params.get(key));        }        //merge成为一个HttpEntity        HttpEntity> multiValueMapHttpEntity = new HttpEntity<>(bodyMap, headersMap);        //当响应的值为400或401时候也要正常响应,不要抛出异常        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {            @Override            public void handleError(ClientHttpResponse response) throws IOException {                if (response.getRawStatusCode() != 400 || response.getRawStatusCode() != 401) {                    super.handleError(response);                }            }        });        ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, multiValueMapHttpEntity, String.class);        return responseEntity.getBody();    }    /**     * 上传文件到文件系统     *     * @param file     * @return     */    public static String upload(File file, RestTemplate restTemplate, String uploadUrl) {        if (!file.exists()) {            return null;        }        //将文件传入文件管理系统        FileSystemResource resource = new FileSystemResource(file);        MultiValueMap param = new LinkedMultiValueMap<>();        param.add("file", resource);        ResponseEntity pathEntity = restTemplate.postForEntity(uploadUrl, param, String.class);        //删除本地文件        file.delete();        //返回文件路径 例如:risk/file/customerReport/20190621/19062113582560509589.pdf        try {            return JsonUtils.parse(pathEntity.getBody(), new Object[0]);        } catch (IOException e) {            e.printStackTrace();        }        return null;    }}

上述就是小编为大家分享的如何理解restTemplateUtil中帮助类了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0