0
点赞
收藏
分享

微信扫一扫

使用RestTemplate进行请求Post接口时中文乱码,转成Bytes字节数组也没有用【已解决】

拾杨梅记 2022-01-10 阅读 19

使用RestTemplate进行请求Post接口时,中文乱码了?


解放方法

1. 接口


    @PostMapping("/savaFile")
    public String savaFile(@RequestBody DcdrFile dcdrFile) {
        service.saveFile(dcdrFile);
        return "调用接口成功,可删除agent数据库数据"
    }


2. 使用RestTemplate发送请求


    RestTemplate restTemplate = new RestTemplate();
    // 定义请求header
    HttpHeaders headers = new HttpHeaders();
    MediaType mediaType = MediaType.parseMediaType("application/json; charset=UTF-8");
    headers.setContentType(mediaType);
    
    HttpEntity<String> paramEntity = new HttpEntity<>(JSONUtil.toJsonStr(dcdrFile), headers);
    
     String apiResult = restTemplate.postForObject(uploadFileUrl, paramEntity, String.class);
    

解决思路

在RestTemplate发送请求时,需要设置请求头的MediaType编码,在定义HttpEntity时将headers带入到请求对象中。
就解决了中文乱码问题。

举报
0 条评论