Java Spring-RestTemplate引发InvalidMediaTypeException

Java Spring-RestTemplate引发InvalidMediaTypeException,java,spring,exception,resttemplate,media-type,Java,Spring,Exception,Resttemplate,Media Type,我正在处理SpringRESTTemplate,在执行下面的代码之后,我得到了InvalidMediaTypeException。当我在RestClient应用程序中执行相同的服务时,我得到了一个有效的响应。请帮忙 ResponseEntity<String> response = restTemplate.exchange(restUrl,HttpMethod.valueOf(method), new HttpEntity<byte[]>(headers), Strin

我正在处理SpringRESTTemplate,在执行下面的代码之后,我得到了
InvalidMediaTypeException
。当我在RestClient应用程序中执行相同的服务时,我得到了一个有效的响应。请帮忙

ResponseEntity<String> response = restTemplate.exchange(restUrl,HttpMethod.valueOf(method), new HttpEntity<byte[]>(headers), String.class);

这是因为客户端内容类型和服务器接受内容类型之间不匹配。
基本正常的“获取”方法默认内容类型为“文本/普通”,但您的案例服务器需要的不是“文本/普通”的内容。因此,当您向服务器发送请求时,应该更改头的contenttypeSpring对响应的
内容类型进行了严格的解析。正如错误消息所暗示的,内容类型字段中不允许使用空格字符(除非使用引号)。你可以在或中阅读。确保您调用的服务器符合这些规则。

异常和堆栈跟踪说明了一切:

在客户端,您有:

ResponseEntity<String> response 
    = restTemplate.exchange(
        restUrl,
        HttpMethod.valueOf(method), 
        new HttpEntity<byte[]>(headers), // <-- contains bad "Content-Type" value
        String.class);
当请求到达服务器时,它尝试使用
MediaType#parseMediaType(String)
解析此标头值,但空格字符无效,如异常消息所述:

令牌“简单边界”中的无效令牌字符“”


下一步是调查
标题是如何填充的。

标题中有什么?内容类型:application/x-www-form-urlencoded是标题。方法是GET,并将所有参数作为URL的一部分传递。如果我没有错的话,空格字符是响应内容类型的一部分。我能做些什么来避免这种情况?@RajaAsthana谁在运行服务器应用程序?应该纠正的是服务器端;目前,它似乎发送了语法错误的响应。@RajaAsthana其他REST客户端很可能执行更“宽松”(不太严格)的解析。
ResponseEntity<String> response 
    = restTemplate.exchange(
        restUrl,
        HttpMethod.valueOf(method), 
        new HttpEntity<byte[]>(headers), // <-- contains bad "Content-Type" value
        String.class);
"Content-Type" -> "multipart/mixed;boundary=simple boundary;charset=UTF-8"`