RestTemplat中關(guān)于getForobject方法的使用
RestTemplat中g(shù)etForobject方法使用
在接短信平臺(tái)的接口時(shí),使用了RestTemplate的getForObject方法,自以為會(huì)自動(dòng)拼接參數(shù),所以只傳了url和保存參數(shù)的map,但是多次提交失敗,以為是中間轉(zhuǎn)碼出錯(cuò)
public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientException { ? ? ? ? return restTemplate.getForObject(url, responseType, uriVariables); }
經(jīng)過(guò)查看源碼,發(fā)現(xiàn)最后并沒(méi)有把參數(shù)拼接到url上,然后找了資料才發(fā)現(xiàn)了正確用法,尷尬~原來(lái)不是自動(dòng)把map的key和value拼接到url上面,而是需要自己先指定好。
即:
http://localhost:8080/shortmessageservice.asmx/Send?sysName={sysName}&phoneNumbers={phoneNumbers}&content={content}&priority={priority}
要用占位符指定到參數(shù)對(duì)應(yīng)的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()方法時(shí)一直報(bào)錯(cuò),原來(lái)是因?yàn)槭褂胢ap傳參需要固定RestTemplate訪問(wèn)的url格式。
比如我想攜帶appId和appKey這兩個(gè)參數(shù),就得在url里面顯示聲明出來(lái),特此記錄一下
解決
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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解spring applicationContext.xml 配置文件
本篇文章主要介紹了詳解spring applicationContext.xml 配置文件 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02mybatis快速入門學(xué)習(xí)教程新手注意問(wèn)題小結(jié)
MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的持久層框架。接下來(lái)通過(guò)本文給大家介紹mybatis快速入門學(xué)習(xí)教程新手注意問(wèn)題小結(jié),需要的朋友可以參考下2017-02-02Nacos服務(wù)發(fā)現(xiàn)并發(fā)啟動(dòng)scheduleUpdate定時(shí)任務(wù)的流程分析
這篇文章主要介紹了Nacos服務(wù)發(fā)現(xiàn)并發(fā)啟動(dòng)scheduleUpdate定時(shí)任務(wù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02maven配置多個(gè)倉(cāng)庫(kù)的實(shí)現(xiàn)
本文主要介紹了maven配置多個(gè)倉(cāng)庫(kù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01java web開(kāi)發(fā)之購(gòu)物車功能實(shí)現(xiàn)示例代碼
這篇文章主要介紹了java web開(kāi)發(fā)之購(gòu)物車功能實(shí)現(xiàn)示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10idea中使用Inputstream流導(dǎo)致中文亂碼解決方法
很多朋友遇到一個(gè)措手不及的問(wèn)題當(dāng)idea中使用Inputstream流導(dǎo)致中文亂碼及Java FileInputStream讀中文亂碼問(wèn)題,針對(duì)這兩個(gè)問(wèn)題很多朋友不知道該如何解決,下面小編把解決方案分享給大家供大家參考2021-05-05