RestTemplate - 415 UNSUPPORTED_MEDIA_TYPE 错误

Posted

技术标签:

【中文标题】RestTemplate - 415 UNSUPPORTED_MEDIA_TYPE 错误【英文标题】:RestTemplate - 415 UNSUPPORTED_MEDIA_TYPE Error 【发布时间】:2021-01-24 10:29:57 【问题描述】:

我想从我的应用程序中调用 REST 服务。我没有向这个电话传递任何请求。但我不知道它是从哪里来的?

    RestTemplate restTemplate = new RestTemplate();

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();

        map.add("username", bonitaUsername);
        map.add("password", bonitaPassword);
        map.add("redirect", "false");

        HttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter();
        HttpMessageConverter stringHttpMessageConverternew = new StringHttpMessageConverter();
        List<HttpMessageConverter<?>> converters = new ArrayList<>();
        converters.add(formHttpMessageConverter);
        converters.add(stringHttpMessageConverternew);
        restTemplate.setMessageConverters(converters);

        HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(map, headers);
        ResponseEntity<?> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);

        List<String> cookies = response.getHeaders().get("Set-Cookie");

        String cookieString = "";

        for (String cookie : cookies) 
            System.out.println();
            cookieString += cookie.split(";")[0] + "; ";
        

        return cookieString;

【问题讨论】:

您发送的表单数据,后端似乎无法处理内容类型 MediaType.APPLICATION_FORM_URLENCODED 【参考方案1】:

这是由于传递给 REST 模板的内容类型不匹配造成的。请确保发送正确的内容类型。有时我们会收到 JSON 请求,但我们需要以另一种格式发送。

【讨论】:

以上是关于RestTemplate - 415 UNSUPPORTED_MEDIA_TYPE 错误的主要内容,如果未能解决你的问题,请参考以下文章

RestTemplate远程调用POST请求:HTTP 415 Unsupported Media Type

Spring Boot Actuator Shutdown Endpoint with Spring RestTemplate Client:错误 415 不支持的媒体类型

通过 JSON 中的 RestTemplate POST 请求

415 不支持的媒体

resttemplate 哪个jar包

StatusCode: 415, ReasonPhrase: '不支持的媒体类型'