使用RestTemplate发送multipart/form-data格式的数据

Posted _johnson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用RestTemplate发送multipart/form-data格式的数据相关的知识,希望对你有一定的参考价值。

现有业务场景需要使用RestTemplate发送一个post请求,请求格式为multipart/form-data的,可以使用一下方法

public Object sendRequest(Object obj) {
        RestTemplate restTemplate = new RestTemplate();

        //设置请求头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);

        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(
                popHeaders(obj), headers);
         //发送请求,设置请求返回数据格式为String
        ResponseEntity<String> responseEntity = restTemplate.postForEntity("http:xxx.xx", request, String.class);
                
}
//组装请求体
protected MultiValueMap<String, String> popHeaders(Object obj) {
        SubmitOrderDTO submit = (SubmitOrderDTO) obj;
        MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();

        map.add("order_id", submit.getOrderId());
        map.add("userName",submit.getUserName());
        //.....
        return map;
}

 

以上是关于使用RestTemplate发送multipart/form-data格式的数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 RestTemplate 发送请求时的编码问题

使用RestTemplate发送post请求

RestTemplate工具类根据服务名发送请求

如何使用 RestTemplate 将 POST 请求发送到相对 URL?

如何在不转义双引号的情况下使用 RestTemplate 发送 JSON 发布请求?

使用restTemplate发送带有身份验证标头的GET请求