RestTemplate-415 UNSUPPORTED_MEDIA_TYPE错误

问题描述

我想从我的应用程序中调用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;

有人可以在这里帮助我吗?

谢谢, 大孙。

解决方法

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

谢谢。