restTemplate请求问题

  记录一下前段时间遇到的问题
  在使用RestTemplate的Get去调用别人的接口的时候,一直报500.我一开始以为是我RestTemplate使用的有问题,从RestTemplate的exchange方法修改为getForEntity方法,其实效果完全一样,然后我以为是请求头的问题,修改了请求头的参数,但是get请求对请求头要求不大。所以也还是报500。后面我还把url封装成URI去使用,其实效果也是一样的。下面就是我的原始方法。
在这里插入图片描述
  后面我意识到时我Get传过去的参数接口没有接收到,restTemplate发送Get请求, 需要将请求Url用占位符,String url = “http://api.xxx.xxx?name={name}&age={age}”。说明我们的思路出了问题。其实直接把参数和url结合成URI即可。
  下面提供一个简单的吧参数和URL结合成URI的方法。(参考别人的博客)

String baseUrl = "http://www.baidu.com";
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(baseUrl);
URI uri = builder.queryParams(params).build().encode().toUri();

  然后使用URI进行get请求就可,比如getForEntity(URI uri,Class responseType)。
在这里插入图片描述
  下面是我最终的代码。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值