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)文章
總結(jié)Java中線程的狀態(tài)及多線程的實(shí)現(xiàn)方式
Java中可以通過Thread類和Runnable接口來創(chuàng)建多個線程,線程擁有五種狀態(tài),下面我們就來簡單總結(jié)Java中線程的狀態(tài)及多線程的實(shí)現(xiàn)方式:2016-07-07
一文帶你掌握springBoot如何做到優(yōu)雅停機(jī)的
在分布式系統(tǒng)中,服務(wù)的優(yōu)雅停機(jī)(Graceful Shutdown)是確保業(yè)務(wù)連續(xù)性的重要機(jī)制,下面就跟隨小編一起來深入了解下springBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的具體方式吧2025-04-04
如何自定義Spring Authorization Server登錄頁
這篇文章主要介紹了如何自定義Spring Authorization Server登錄頁,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2025-05-05
SpringBoot整合mybatis-plus進(jìn)階詳細(xì)教程
本文主要對mybatis-plus的條件構(gòu)造器、AR模式、插件、逆向工程、自定義全局操作、公共字段自動填充等知識點(diǎn)進(jìn)行講解,需要的朋友參考下吧2021-09-09
springboot的切面應(yīng)用方式(注解Aspect)
文章總結(jié):Spring?Boot提供了三種攔截器:Filter、Interceptor和Aspect,Filter主要用于內(nèi)容過濾和非登錄狀態(tài)的非法請求過濾,無法獲取Spring框架相關(guān)的信息,Interceptor可以在獲取請求類名、方法名的同時,獲取請求參數(shù),但無法獲取參數(shù)值2024-11-11
Spring Boot集成Swagger2項(xiàng)目實(shí)戰(zhàn)
在日常的工作中,我們往往需要給前端(WEB端、IOS、Android)或者第三方提供接口,這個時候我們就需要給他們提供一份詳細(xì)的API說明文檔。這篇文章我們就來分享一種API文檔維護(hù)的方式,即通過Swagger來自動生成Restuful API文檔2018-01-01

