欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

resttemplate設(shè)置params的方法

 更新時(shí)間:2025年04月03日 09:17:05   作者:在下,楊江河  
RestTemplate設(shè)置請(qǐng)求參數(shù)的方式根據(jù)請(qǐng)求類(lèi)型(GET/POST)和參數(shù)形式(路徑參數(shù)、查詢(xún)參數(shù)、JSON請(qǐng)求體)有所不同,下面通過(guò)本文給大家介紹resttemplate設(shè)置params的方法,感興趣的朋友一起看看吧

如何使用RestTemplate設(shè)置請(qǐng)求參數(shù)

RestTemplate設(shè)置請(qǐng)求參數(shù)的方式根據(jù)請(qǐng)求類(lèi)型(GET/POST)和參數(shù)形式(路徑參數(shù)、查詢(xún)參數(shù)、JSON請(qǐng)求體)有所不同,以下是具體實(shí)現(xiàn)方法:

一、GET請(qǐng)求參數(shù)設(shè)置

路徑參數(shù)
使用占位符{param},通過(guò)Map或可變參數(shù)傳遞:

// 使用Map傳參
Map<String, String> uriVariables = new HashMap<>();
uriVariables.put("id", "123");
String result = restTemplate.getForObject("http://example.com/api/{id}", String.class, uriVariables);
// 或使用可變參數(shù)
String result = restTemplate.getForObject("http://example.com/api/{id}", String.class, "123");

查詢(xún)參數(shù)
使用UriComponentsBuilder構(gòu)建帶參數(shù)的URL:

UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://example.com/api/data")
    .queryParam("name", "John")
    .queryParam("age", 25);
String url = builder.toUriString();
String result = restTemplate.getForObject(url, String.class);

二、POST請(qǐng)求參數(shù)設(shè)置

JSON請(qǐng)求體
使用HttpEntity封裝嵌套JSON參數(shù),并設(shè)置請(qǐng)求頭:

// 構(gòu)建嵌套參數(shù)
Map<String, Object> paramMap = new HashMap<>();
Map<String, String> queryMap = new HashMap<>();
queryMap.put("c1", "value1");
paramMap.put("a", "valueA");
paramMap.put("b", queryMap);
// 設(shè)置請(qǐng)求頭
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(paramMap, headers);
// 發(fā)送請(qǐng)求
String response = restTemplate.postForObject("http://example.com/api", entity, String.class);

引用示例中的多層嵌套JSON構(gòu)建方式。

表單參數(shù)
使用MultiValueMap傳遞表單數(shù)據(jù):

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
formData.add("username", "admin");
formData.add("password", "123456");
HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(formData, headers);
ResponseEntity<String> response = restTemplate.postForEntity("http://example.com/login", entity, String.class);

三、配置RestTemplate超時(shí)(可選)

通過(guò)配置類(lèi)設(shè)置連接和讀取超時(shí):

@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate() {
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setConnectTimeout(10000); // 10秒
        factory.setReadTimeout(10000);    // 10秒
        return new RestTemplate(factory);
    }
}

引用配置類(lèi)示例。

四、處理復(fù)雜響應(yīng)

解析JSON響應(yīng)并提取數(shù)據(jù):

ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
JSONObject jsonResponse = new JSONObject(response.getBody());
if ("0000".equals(jsonResponse.getJSONObject("parameter").getString("code"))) {
    String result = jsonResponse.getString("result");
}

引用響應(yīng)處理方法。

到此這篇關(guān)于resttemplate設(shè)置params的方法的文章就介紹到這了,更多相關(guān)resttemplate設(shè)置params內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何解析pom文件方法示例

    詳解如何解析pom文件方法示例

    這篇文章主要為大家介紹了詳解如何解析pom文件方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • java文件上傳技術(shù)深入剖析

    java文件上傳技術(shù)深入剖析

    這篇文章主要為大家詳細(xì)介紹了java文件上傳技術(shù)深入剖析,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • IDEA 中 maven 的 Lifecycle 和Plugins 的區(qū)別

    IDEA 中 maven 的 Lifecycle 和Plugins&n

    IDEA 主界面右側(cè) Maven 標(biāo)簽欄有同樣的命令,比如 install,既在 Plugins 中存在,也在 Lifecycle中存在,到底選哪個(gè)?二者又有什么區(qū)別呢?下面小編給大家介紹下IDEA 中 maven 的 Lifecycle 和Plugins 的區(qū)別,感興趣的朋友一起看看吧
    2023-03-03
  • Java中的static關(guān)鍵字用法總結(jié)

    Java中的static關(guān)鍵字用法總結(jié)

    這篇文章主要介紹了Java中的static關(guān)鍵字用法總結(jié),static是Java50個(gè)關(guān)鍵字之一,static關(guān)鍵字可以用來(lái)修飾代碼塊表示靜態(tài)代碼塊,修飾成員變量表示全局靜態(tài)成員變量,修飾方法表示靜態(tài)方法,需要的朋友可以參考下
    2023-11-11
  • MyBatis實(shí)現(xiàn)動(dòng)態(tài)查詢(xún)、模糊查詢(xún)功能

    MyBatis實(shí)現(xiàn)動(dòng)態(tài)查詢(xún)、模糊查詢(xún)功能

    這篇文章主要介紹了MyBatis實(shí)現(xiàn)動(dòng)態(tài)查詢(xún)、模糊查詢(xún)功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • JAVA實(shí)現(xiàn)遍歷文件夾下的所有文件(遞歸調(diào)用和非遞歸調(diào)用)

    JAVA實(shí)現(xiàn)遍歷文件夾下的所有文件(遞歸調(diào)用和非遞歸調(diào)用)

    本篇文章主要介紹了JAVA 遍歷文件夾下的所有文件(遞歸調(diào)用和非遞歸調(diào)用) ,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • spring boot整合kafka過(guò)程解析

    spring boot整合kafka過(guò)程解析

    這篇文章主要介紹了spring boot整合kafka過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java Socket 編程詳解

    Java Socket 編程詳解

    Java Socket 編程是指使用 Java 語(yǔ)言進(jìn)行網(wǎng)絡(luò)通信的過(guò)程,包括建立連接、傳輸數(shù)據(jù)和關(guān)閉連接等操作,本文將詳細(xì)介紹Java Socket編程,需要的朋友可以參考下
    2023-05-05
  • SpringSecurity中@PermitAll與@PreAuthorize的實(shí)現(xiàn)

    SpringSecurity中@PermitAll與@PreAuthorize的實(shí)現(xiàn)

    @PermitAll和@PreAuthorize都是處理安全性的強(qiáng)大工具,本文主要介紹了SpringSecurity中@PermitAll與@PreAuthorize的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • SpringBoot 2 快速整合 Filter過(guò)程解析

    SpringBoot 2 快速整合 Filter過(guò)程解析

    這篇文章主要介紹了SpringBoot 2 快速整合 Filter過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論