Springboot發(fā)送post請求的幾種方式總結(jié)
請求體為json形式
/*** url:請求路徑 content: 請求參數(shù),為json字符串 token: 請求認(rèn)證token,放置在請求頭里 */ public ResponseEntity<String> callApi(String url, String content, String token) { RestTemplate restTemplate = new RestTemplate(); // 設(shè)置請求頭,指定Content-Type為application/json HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); // 添加Authorization頭 headers.add(Constants.AUTHORIZATION, Constants.TOKEN_PREFIX + shareToken); // 創(chuàng)建HttpEntity,將JSON參數(shù)和請求頭添加到請求中 HttpEntity<String> requestEntity = new HttpEntity<>(content, headers); // 發(fā)送POST請求 ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); return responseEntity; }
請求體為x-www-form-urlencoded
public ResponseEntity<String> callApi(String url, String content, String token) { RestTemplate restTemplate = new RestTemplate(); // 設(shè)置請求頭,指定Content-Type為application/json HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); // 添加Authorization頭 headers.add(Constants.AUTHORIZATION, Constants.TOKEN_PREFIX + shareToken); JSONObject jsonObject = JSONObject.parseObject(content); // 將解析后的 JSON 對象轉(zhuǎn)換為 MultiValueMap MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>(); for (String key : jsonObject.keySet()) { formData.add(key, jsonObject.get(key)); } HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(formData, headers); responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); return responseEntity; }
請求體為form-data
public ResponseEntity<String> callApi(String url, String content, String token) { RestTemplate restTemplate = new RestTemplate(); // 設(shè)置請求頭,指定Content-Type為application/json HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.MULTIPART_FORM_DATA_VALUE); // 添加Authorization頭 headers.add(Constants.AUTHORIZATION, Constants.TOKEN_PREFIX + shareToken); JSONObject jsonObject = JSONObject.parseObject(content); // 將解析后的 JSON 對象轉(zhuǎn)換為 MultiValueMap MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>(); for (String key : jsonObject.keySet()) { formData.add(key, jsonObject.get(key)); } HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(formData, headers); responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); return responseEntity; }
到此這篇關(guān)于Springboot發(fā)送post請求的幾種方式總結(jié)的文章就介紹到這了,更多相關(guān)Springboot發(fā)送post請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot集成MyBatis-Plus 自定義攔截器實(shí)現(xiàn)動(dòng)態(tài)表名切換功能
本文介紹了如何在SpringBoot項(xiàng)目中集成MyBatis-Plus,并通過自定義攔截器實(shí)現(xiàn)動(dòng)態(tài)表名切換,此外,還探討了MyBatis攔截器在其他場景中的應(yīng)用,如SQL日志記錄、多租戶數(shù)據(jù)隔離、數(shù)據(jù)權(quán)限控制等,感興趣的朋友跟隨小編一起看看吧2024-11-11Java 定時(shí)器(Timer)及線程池里使用定時(shí)器實(shí)例代碼
這篇文章主要介紹了Java 定時(shí)器(Timer)及線程池里使用定時(shí)器實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-12-12解決Java 部署Tomcat時(shí)使用jni和jna調(diào)用DLL文件的問題
這篇文章主要介紹了解決Java 部署Tomcat時(shí)使用jni和jna調(diào)用DLL文件的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11MAC 系統(tǒng)如何使用 Sublime Text 2 直接編譯運(yùn)行 java 代碼
這篇文章主要介紹了MAC 系統(tǒng)如何使用 Sublime Text 2 直接編譯運(yùn)行 java 代碼,需要的朋友可以參考下2014-10-10java 異常被catch后 將會(huì)繼續(xù)執(zhí)行的操作
這篇文章主要介紹了java 異常被catch后 將會(huì)繼續(xù)執(zhí)行的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02