RestTemplat中关于getForobject方法的使用

 更新时间:2023年07月06日 16:28:45   作者:程序媛是个软妹子  
这篇文章主要介绍了RestTemplat中关于getForobject方法的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

RestTemplat中getForobject方法使用

在接短信平台的接口时,使用了RestTemplate的getForObject方法,自以为会自动拼接参数,所以只传了url和保存参数的map,但是多次提交失败,以为是中间转码出错

public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientException {
        return restTemplate.getForObject(url, responseType, uriVariables);
}

经过查看源码,发现最后并没有把参数拼接到url上,然后找了资料才发现了正确用法,尴尬~原来不是自动把map的key和value拼接到url上面,而是需要自己先指定好。

即:

http://localhost:8080/shortmessageservice.asmx/Send?sysName={sysName}&phoneNumbers={phoneNumbers}&content={content}&priority={priority}

要用占位符指定到参数对应的key,和自定义的map一样,使用getForObject方法即可成功把参数拼接上去。

//map的定义
    Map<String,String> request = new HashMap<>();
    request.put("sysName","username");
    request.put("phoneNumbers","13800138000");
    request.put("content","内容");
    request.put("priority", "getforobject");

RestTemplate关于getForObject()的正确用法

在使用RestTemplate的getForObject()方法时一直报错,原来是因为使用map传参需要固定RestTemplate访问的url格式。

比如我想携带appId和appKey这两个参数,就得在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
);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring MVC 使用支付宝接口完成在线支付的示例代码

    Spring MVC 使用支付宝接口完成在线支付的示例代码

    本篇文章主要介绍了Spring MVC 使用支付宝接口完成在线支付的示例代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • 使用MybatisPlus自定义模版中能获取到的信息

    使用MybatisPlus自定义模版中能获取到的信息

    这篇文章主要介绍了使用MybatisPlus自定义模版中能获取到的信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 详解spring applicationContext.xml 配置文件

    详解spring applicationContext.xml 配置文件

    本篇文章主要介绍了详解spring applicationContext.xml 配置文件 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • mybatis快速入门学习教程新手注意问题小结

    mybatis快速入门学习教程新手注意问题小结

    MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。接下来通过本文给大家介绍mybatis快速入门学习教程新手注意问题小结,需要的朋友可以参考下
    2017-02-02
  • Java中的8大基本数据类型详解

    Java中的8大基本数据类型详解

    这篇文章主要介绍了Java中8大基本数据类型的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Nacos服务发现并发启动scheduleUpdate定时任务的流程分析

    Nacos服务发现并发启动scheduleUpdate定时任务的流程分析

    这篇文章主要介绍了Nacos服务发现并发启动scheduleUpdate定时任务,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • maven配置多个仓库的实现

    maven配置多个仓库的实现

    本文主要介绍了maven配置多个仓库的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • java web开发之购物车功能实现示例代码

    java web开发之购物车功能实现示例代码

    这篇文章主要介绍了java web开发之购物车功能实现示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Java中增强for循环代码示例

    Java中增强for循环代码示例

    这篇文章主要给大家介绍了Java中增强for循环的相关资料,for/in循环就是JDK5.0中所谓的增强For循环,它能对数组和集合进行遍历,使用它会使用你的代码短小而精炼的多,需要的朋友可以参考下
    2023-10-10
  • idea中使用Inputstream流导致中文乱码解决方法

    idea中使用Inputstream流导致中文乱码解决方法

    很多朋友遇到一个措手不及的问题当idea中使用Inputstream流导致中文乱码及Java FileInputStream读中文乱码问题,针对这两个问题很多朋友不知道该如何解决,下面小编把解决方案分享给大家供大家参考
    2021-05-05

最新评论