SSM post接口传递json 报错 HTTP状态 415 - 不支持的媒体类型

这篇文章是写给哪些在小破站学习ssm教程的兄弟们,我们都是萌新,大佬就让行吧感谢理解!

本文章主要讲解B站赵伟风SSM教程第108节(JSON数据的接收)

我所有的配置都跟老师一样,老师就很顺利发出去了,我的就是一直415,烦死了!!!

经过我的排查问题出现在 我们的配置类中,我们在上课的时候老是都让我们这样写的:

bash 复制代码
package org.example.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

@EnableWebMvc
@Configuration
@ComponentScan("org.example.json")

public class MVCConfig {
    @Bean
    public RequestMappingHandlerMapping requestMappingHandlerMapping() {
        return new RequestMappingHandlerMapping();
    }

    @Bean
    public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
        return new RequestMappingHandlerAdapter();
    }
}

问题原因是:

这样写老师没有问题我的就报错了,我滴孩6

为什么呢??

在你手动定义 RequestMappingHandlerAdapter 和 RequestMappingHandlerMapping 时,

默认的 HttpMessageConverter 配置被覆盖或丢失。

默认情况下,Spring 自动配置 RequestMappingHandlerAdapter 并加载 HttpMessageConverter,包括 MappingJackson2HttpMessageConverter,用于处理 JSON 请求。

如果删除手动配置后,Spring 恢复默认行为,因此能够自动解析 application/json,使得 POST 请求可以正确被处理。

说人话就是,你这个不用自己配置 人家spring给你配置好了,你这样一搞,给人家的覆盖了,人家不高兴了,不给你解析Json了jackson来了都不好使!

解决方案1:更改你的配置文件

这样就可以直接解析了

bash 复制代码
package org.example.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@EnableWebMvc
@Configuration
@ComponentScan("org.example.json")
public class MVCConfig {
    // 这里不需要手动定义 requestMappingHandlerAdapter 和 requestMappingHandlerMapping
}

解决方案2:更改你的配置文件

如果确实需要手动配置 RequestMappingHandlerAdapter,你需要确认其包含 HttpMessageConverter,如 MappingJackson2HttpMessageConverter,以便处理 application/json 格式的请求和响应。

bash 复制代码
package org.example.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;

@EnableWebMvc
@Configuration
@ComponentScan("org.example.json")
public class MVCConfig {
    
    @Bean
    public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
        RequestMappingHandlerAdapter adapter = new RequestMappingHandlerAdapter();
        adapter.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
        return adapter;
    }

}
相关推荐
寻星探路9 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
王达舒19949 小时前
HTTP vs HTTPS: 终极解析,保护你的数据究竟有多重要?
网络协议·http·https
朱皮皮呀9 小时前
HTTPS的工作过程
网络协议·http·https
Binary-Jeff9 小时前
一文读懂 HTTPS 协议及其工作流程
网络协议·web安全·http·https
惊讶的猫1 天前
OpenFeign(声明式HTTP客户端)
网络·网络协议·http·微服务·openfeign
摇滚侠1 天前
HTTP 404 - No response body available
网络·网络协议·http
Trouvaille ~1 天前
【Linux】应用层协议设计实战(一):自定义协议与网络计算器
linux·运维·服务器·网络·c++·http·应用层协议
CSCN新手听安1 天前
【linux】网络基础(三)TCP服务端网络版本计算器的优化,Json的使用,服务器守护进程化daemon,重谈OSI七层模型
linux·服务器·网络·c++·tcp/ip·json
bloglin999991 天前
Qwen3-32B报错Invalid json output:{“type“: “1“}For troubleshooting, visit
llm·json
Trouvaille ~1 天前
【Linux】应用层协议设计实战(二):Jsoncpp序列化与完整实现
linux·运维·服务器·网络·c++·json·应用层