您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何理解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中幫助類了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。