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

resttemplate設置params的方法

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

如何使用RestTemplate設置請求參數(shù)

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

一、GET請求參數(shù)設置

路徑參數(shù)
使用占位符{param},通過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");

查詢參數(shù)
使用UriComponentsBuilder構建帶參數(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請求參數(shù)設置

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

// 構建嵌套參數(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);
// 設置請求頭
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(paramMap, headers);
// 發(fā)送請求
String response = restTemplate.postForObject("http://example.com/api", entity, String.class);

引用示例中的多層嵌套JSON構建方式。

表單參數(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超時(可選)

通過配置類設置連接和讀取超時:

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

引用配置類示例。

四、處理復雜響應

解析JSON響應并提取數(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");
}

引用響應處理方法。

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

相關文章

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

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

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

    java文件上傳技術深入剖析

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

    IDEA 中 maven 的 Lifecycle 和Plugins&n

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

    Java中的static關鍵字用法總結

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

    MyBatis實現(xiàn)動態(tài)查詢、模糊查詢功能

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

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

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

    spring boot整合kafka過程解析

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

    Java Socket 編程詳解

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

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

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

    SpringBoot 2 快速整合 Filter過程解析

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

最新評論