RestTemplat中關(guān)于getForobject方法的使用
RestTemplat中g(shù)etForobject方法使用
在接短信平臺的接口時,使用了RestTemplate的getForObject方法,自以為會自動拼接參數(shù),所以只傳了url和保存參數(shù)的map,但是多次提交失敗,以為是中間轉(zhuǎn)碼出錯
public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientException {
? ? ? ? return restTemplate.getForObject(url, responseType, uriVariables);
}經(jīng)過查看源碼,發(fā)現(xiàn)最后并沒有把參數(shù)拼接到url上,然后找了資料才發(fā)現(xiàn)了正確用法,尷尬~原來不是自動把map的key和value拼接到url上面,而是需要自己先指定好。
即:
http://localhost:8080/shortmessageservice.asmx/Send?sysName={sysName}&phoneNumbers={phoneNumbers}&content={content}&priority={priority}要用占位符指定到參數(shù)對應的key,和自定義的map一樣,使用getForObject方法即可成功把參數(shù)拼接上去。
//map的定義
? ? Map<String,String> request = new HashMap<>();
? ? request.put("sysName","username");
? ? request.put("phoneNumbers","13800138000");
? ? request.put("content","內(nèi)容");
? ? request.put("priority", "getforobject");RestTemplate關(guān)于getForObject()的正確用法
在使用RestTemplate的getForObject()方法時一直報錯,原來是因為使用map傳參需要固定RestTemplate訪問的url格式。
比如我想攜帶appId和appKey這兩個參數(shù),就得在url里面顯示聲明出來,特此記錄一下
解決
RestTemplate restTemplate = null;
InfoResponse response = null;
restTemplate = GenericObjectPoolUtils.borrowObject(RestTemplate.class);
Map<String, String> hashMap = new HashMap<>(5);
hashMap.put("appId", appId);
hashMap.put("appKey", appKey);
response = restTemplate.getForObject(
? ? ? ? "http://localhost:8083/api/getinfo?appId={appId}&appKey={appKey}"
? ? ? ? InfoResponse.class, hashMap
);總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
idea報錯:java程序包com.github.xiaoymin.knife4j.spring.annotations
這篇文章主要介紹了idea報錯:java程序包com.github.xiaoymin.knife4j.spring.annotations不存在問題解決,需要的朋友可以參考下2023-06-06
SpringBoot Java后端實現(xiàn)okhttp3超時設(shè)置的方法實例
Okhttp的使用沒有httpClient廣泛,網(wǎng)上關(guān)于Okhttp設(shè)置代理的方法很少,下面這篇文章主要給大家介紹了關(guān)于SpringBoot Java后端實現(xiàn)okhttp3超時設(shè)置的相關(guān)資料,需要的朋友可以參考下2021-10-10
Springboot集成JSR303參數(shù)校驗的方法實現(xiàn)
這篇文章主要介紹了Springboot集成JSR303參數(shù)校驗的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
一個例子帶你看懂Java中synchronized關(guān)鍵字到底怎么用
synchronized是Java里的一個關(guān)鍵字,起到的一個效果是"監(jiān)視器鎖",它的功能就是保證操作的原子性,同時禁止指令重排序和保證內(nèi)存的可見性,下面這篇文章主要給大家介紹了關(guān)于如何通過一個例子帶你看懂Java中synchronized關(guān)鍵字到底怎么用的相關(guān)資料,需要的朋友可以參考下2022-10-10
springboot配置開發(fā)和測試環(huán)境并添加啟動路徑方式
這篇文章主要介紹了springboot配置開發(fā)和測試環(huán)境并添加啟動路徑方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Java Socket編程筆記_動力節(jié)點Java學院整理
Socket對于我們來說就非常實用了。下面是本次學習的筆記。主要分異常類型、交互原理、Socket、ServerSocket、多線程這幾個方面闡述2017-05-05

