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

