postTemplate 发送的httpEntity格式和响应数据出现中文乱码问题

在使用Java RestTemplate的postForEntity方法请求第三方接口时,遇到请求体格式和响应中文乱码问题。通过研究源码发现,正确使用HttpEntity的MultiValueMap类型才能避免错误。解决乱码问题需要对RestTemplate进行特定设置。
摘要由CSDN通过智能技术生成

项目中有个地方需要请求第三方接口的数据,接口规定了post方法和对象头,打算采用RestTemplate的postForEntity方法获取数据,但是在添加请求体的时候就出问题了。(项目用的是java11)

首先查看一下postForEntity的源码:

  public <T> ResponseEntity<T> postForEntity(URI url, @Nullable Object request, Class<T> responseType) throws RestClientException {
   
        RequestCallback requestCallback = this.httpEntityCallback(request, responseType);
        ResponseExtractor<ResponseEntity<T>> responseExtractor = this.responseEntityExtractor(responseType);
        return (ResponseEntity)nonNull(this.execute(url, HttpMethod.POST, requestCallback, responseExtractor));
    }

发现传参第二项是object类的请求数据,但是查看网上的教程都是用一个带泛型的HttpEntity类型传递的请求参数,当时就有点疑惑,干嘛非要这样传呢?

继续点进去看,一直点到实际用到request:

    public <T> RequestCallback httpEntityCallback(@Nullable Object requestBody
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值