Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'text/plain;charset=UTF-8' is not supported]
时间: 2025-07-06 20:56:57 浏览: 11
### 解决 Spring MVC 中 `HttpMediaTypeNotSupportedException` 异常
当遇到 `HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8' not supported` 错误时,通常是因为客户端发送的内容类型与服务器端配置不符。为了处理这个问题,可以从以下几个方面着手:
#### 修改控制器方法的返回类型和接受类型
确保控制器的方法能够正确响应特定类型的请求并指定合适的媒体类型。
```java
@RequestMapping(
value = "/test4",
method = RequestMethod.GET,
produces = {"application/json;charset=UTF-8"}
)
@ResponseBody
public String testMethod() {
return "{\"message\":\"success\"}";
}
```
通过设置 `produces` 属性来限定该接口仅能生产 JSON 数据[^1]。
#### 客户端调整 HTTP 请求头
如果使用 Postman 或其他工具测试 API 接口,则需确认请求头部的信息是否恰当。对于 POST 方法来说,应该将 `Content-Type` 设置为 `application/json;charset=utf-8` 而不是默认的 `text/plain` 类型。
```bash
POST /api/endpoint HTTP/1.1
Host: localhost:8080
Content-Type: application/json;charset=utf-8
Cache-Control: no-cache
```
这可以防止因内容类型不兼容而导致的服务拒绝接收请求的情况发生[^2]。
#### 配置全局消息转换器
有时可能需要自定义全局的消息转换机制以适应不同的需求,在这种情况下可以在应用程序上下文中注册额外的消息转换器实例。
```xml
<mvc:message-converters register-defaults="true">
<!-- 添加更多转换器 -->
</mvc:message-converters>
```
或者在 Java Config 下:
```java
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// 自定义消息转换逻辑...
}
}
```
这样做有助于扩展框架对外部输入的支持范围,并减少类似问题的发生概率[^4]。
阅读全文
相关推荐












