這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何理解restTemplateUtil中幫助類,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
10年積累的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有慶安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
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 { /** * 可以設(shè)置請(qǐng)求頭參數(shù)和請(qǐng)求體參數(shù)的post方法 * * @param url * @param headers * @param params * @param restTemplate * @return */ public static String postConnect(String url, Mapheaders, Map params, RestTemplate restTemplate) { //header信息,包括了http basic認(rèn)證信息 MultiValueMap headersMap = new LinkedMultiValueMap<>(); for (String key : headers.keySet()) { headersMap.add(key, headers.get(key)); } //body請(qǐng)求體部分 MultiValueMap bodyMap = new LinkedMultiValueMap<>(); for (String key : params.keySet()) { bodyMap.add(key, params.get(key)); } //merge成為一個(gè)HttpEntity HttpEntity > multiValueMapHttpEntity = new HttpEntity<>(bodyMap, headersMap); //當(dāng)響應(yīng)的值為400或401時(shí)候也要正常響應(yīng),不要拋出異常 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(); } /** * 上傳文件到文件系統(tǒng) * * @param file * @return */ public static String upload(File file, RestTemplate restTemplate, String uploadUrl) { if (!file.exists()) { return null; } //將文件傳入文件管理系統(tǒng) 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中幫助類了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。