Springboot發(fā)送post請(qǐng)求的幾種方式總結(jié)
請(qǐng)求體為json形式
/***
url:請(qǐng)求路徑
content: 請(qǐng)求參數(shù),為json字符串
token: 請(qǐng)求認(rèn)證token,放置在請(qǐng)求頭里
*/
public ResponseEntity<String> callApi(String url, String content, String token) {
RestTemplate restTemplate = new RestTemplate();
// 設(shè)置請(qǐng)求頭,指定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ù)和請(qǐng)求頭添加到請(qǐng)求中
HttpEntity<String> requestEntity = new HttpEntity<>(content, headers);
// 發(fā)送POST請(qǐng)求
ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
return responseEntity;
}
請(qǐng)求體為x-www-form-urlencoded
public ResponseEntity<String> callApi(String url, String content, String token) {
RestTemplate restTemplate = new RestTemplate();
// 設(shè)置請(qǐng)求頭,指定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 對(duì)象轉(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;
}
請(qǐng)求體為form-data
public ResponseEntity<String> callApi(String url, String content, String token) {
RestTemplate restTemplate = new RestTemplate();
// 設(shè)置請(qǐng)求頭,指定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 對(duì)象轉(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請(qǐng)求的幾種方式總結(jié)的文章就介紹到這了,更多相關(guān)Springboot發(fā)送post請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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攔截器在其他場(chǎng)景中的應(yīng)用,如SQL日志記錄、多租戶數(shù)據(jù)隔離、數(shù)據(jù)權(quán)限控制等,感興趣的朋友跟隨小編一起看看吧2024-11-11
Java 定時(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à)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
MAC 系統(tǒng)如何使用 Sublime Text 2 直接編譯運(yùn)行 java 代碼
這篇文章主要介紹了MAC 系統(tǒng)如何使用 Sublime Text 2 直接編譯運(yùn)行 java 代碼,需要的朋友可以參考下2014-10-10
springboot開啟mybatis二級(jí)緩存的步驟詳解
這篇文章給大家介紹了springboot開啟mybatis二級(jí)緩存的詳細(xì)步驟,文中通過代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02
java 異常被catch后 將會(huì)繼續(xù)執(zhí)行的操作
這篇文章主要介紹了java 異常被catch后 將會(huì)繼續(xù)執(zhí)行的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02

