中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解restTemplateUtil中幫助類

發布時間:2021-10-19 16:16:33 來源:億速云 閱讀:149 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關如何理解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<String, String> headers, Map<String, String> params, RestTemplate restTemplate) {
        //header信息,包括了http basic認證信息
        MultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>();
        for (String key : headers.keySet()) {
            headersMap.add(key, headers.get(key));
        }
        //body請求體部分
        MultiValueMap<String, String> bodyMap = new LinkedMultiValueMap<>();
        for (String key : params.keySet()) {
            bodyMap.add(key, params.get(key));
        }
        //merge成為一個HttpEntity
        HttpEntity<MultiValueMap<String, String>> 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<String> 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<String, Object> param = new LinkedMultiValueMap<>();
        param.add("file", resource);
        ResponseEntity<String> 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中幫助類了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉环县| 宁明县| 新兴县| 肇东市| 正蓝旗| 阜康市| 许昌县| 香河县| 江永县| 漳平市| 灵宝市| 长乐市| 盐源县| 南充市| 嘉义县| 迁安市| 林周县| 林甸县| 永修县| 岳阳市| 郴州市| 湛江市| 井冈山市| 崇阳县| 仁化县| 黄梅县| 德州市| 枝江市| 霸州市| 大厂| 东明县| 通榆县| 南平市| 错那县| 诏安县| 伊宁县| 厦门市| 安顺市| 延吉市| 潼南县| 斗六市|