【问题解决】Postman 测试报错 406

现象

在这里插入图片描述

Tomcat 日志

org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation

HTTP状态 406 - 不可接收 的报错,核心原因

客户端的请求头 Accept 无法匹配服务端可返回的数据类型(例如 JSON),导致 SpringMVC 无法找到合适的表示(representation)返回

🎯 关键问题分析

原始接口:

@GetMapping("/save")
@ResponseBody
public String save() {return "{'info': 'springmvc'}";
}

问题原因:

  1. @ResponseBody + String 返回 JSON 字符串,但 SpringMVC 认为它是 text/plain 类型;
  2. 如果 Postman 的 Accept 请求头为 application/json,SpringMVC 会尝试返回 JSON;
  3. 结果不匹配,服务端无法满足客户端请求的数据格式要求,返回 406

🛠️ 解决方案一:改返回类型 + 自动 JSON 转换

修改返回类型为 Map 或 Java 对象,SpringMVC 会自动将其序列化为 JSON(需引入 Jackson)

修改示例:

@GetMapping("/save")
@ResponseBody
public Map<String, String> save() {Map<String, String> map = new HashMap<>();map.put("info", "springmvc");return map;
}

Maven 依赖 Jackson(Spring6 通常自动包含):

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.18.2</version>
</dependency>

🛠️ 解决方案二:Postman 设置 Accepttext/plain

如果不修改接口代码,仍返回字符串 "{}",则 Postman 需要这样设置:

  1. 在 Headers 中添加:

    Accept: text/plain
    
  2. 或删除 Accept 头,让它使用默认(*/*);


🛠️ 解决方案三:显式指定返回类型为 JSON

@GetMapping(value = "/save", produces = "application/json;charset=UTF-8")
@ResponseBody
public String save() {return "{\"info\": \"springmvc\"}";
}

这样 Spring 会将字符串当成 JSON 返回,避免 406


🧩 总结

方案优点注意
返回对象(Map/类)推荐,Spring自动 JSON需 Jackson 依赖
改 Accept 头快速,适合测试返回非标准 JSON
指定 produces控制精确手写 JSON 且需转义

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72921.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第3节:AWK的特点和优势

1 第3节&#xff1a;AWK的特点和优势 AWK是一种功能强大的文本处理工具&#xff0c;具有以下特点和优势&#xff1a; 1.1.1 简洁性 AWK的语法简洁明了&#xff0c;对于简单的数据处理任务&#xff0c;通常只需编写简短的命令即可完成。例如&#xff0c;要从一个文本文件中提…

Flutter 打包 ipa出现错误问题 exportArchive

一、错误信息: Encountered error while creating the IPA: error: exportArchive: "Runner.app" requires a provisioning profile with the Push Notifications feature. Try distributing the app in Xcode: open /project/your_app/build/ios/archive/Runner.…

STC89C52单片机学习——第28节: [12-2] AT24C02数据存储秒表(定时器扫描按键数码管)

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.03.20 51单片机学习——第28节: [12-2] AT24C02数据存储&秒表&#xff08;定时器扫…

Verilog-HDL/SystemVerilog/Bluespec SystemVerilog vscode 配置

下载 verible https://github.com/chipsalliance/verible的二进制包 然后配置 vscode

STM32使用HAL库,模拟UART输出字符串

测试芯片是STM32F103C8T6&#xff0c;直接封装好了&#xff0c;波特率是 9600 MyDbg.h #ifndef __MYDBG_H #define __MYDBG_H #include "stm32f1xx_hal.h" #include <stdio.h> #include <stdarg.h>/*使用GPIO口 模拟 UART 输出字符串 */ //初始化调试…

[工控机安全] 使用DriverView快速排查不可信第三方驱动(附详细图文教程)

导语&#xff1a; 在工业控制领域&#xff0c;设备驱动程序的安全性至关重要。第三方驱动可能存在兼容性问题、安全漏洞甚至恶意代码&#xff0c;威胁设备稳定运行。本文将手把手教你使用 DriverView工具&#xff0c;高效完成工控机驱动安全检查&#xff0c;精准识别可疑驱动&a…

HTML5响应式使用css媒体查询

HTML 负责搭建页面结构&#xff0c;CSS 负责样式设计&#xff0c;并且通过媒体查询实现了较好的响应式效果&#xff0c;能够适应不同屏幕尺寸下面就是写了一个详细的实例。 CSS 部分 * {margin: 0;padding: 0;box-sizing: border-box; } * 是通配选择器&#xff0c;会选中页面…

洛谷P1434 [SHOI2002] 滑雪

P1434 [SHOI2002] 滑雪 - 洛谷 代码区&#xff1a; #include<algorithm> #include<iostream> #include<cstring> using namespace std;const int MAX 105; int r, c; int arr[MAX][MAX], dp[MAX][MAX]; int xindex[4] {-1,1,0,0};//上下左右 int yindex[…

【操作系统】进程间通信方式

进程间通信方式 前言 / 概述一、管道管道命名管道 二、消息队列三、共享内存四、信号量信号量概述互斥访问条件同步信号 五、socket总结 前言 / 概述 每个进程的用户地址空间都是独立的&#xff0c;⼀般而言是不能互相访问的&#xff0c;但内核空间是每个进程都共享的&#xff…

WPF 布局中的共性尺寸组(Shared Size Group)

1. 什么是共性尺寸组&#xff1f; 在 WPF 的 Grid 布局中&#xff0c;SharedSizeGroup 允许多个 Grid 共享同一列或行的尺寸&#xff0c;即使它们属于不同的 Grid 也能保持大小一致。这样可以保证界面元素的对齐性&#xff0c;提高布局的一致性。 SharedSizeGroup 主要用于需…

Netty源码—2.Reactor线程模型二

大纲 1.关于NioEventLoop的问题整理 2.理解Reactor线程模型主要分三部分 3.NioEventLoop的创建 4.NioEventLoop的启动 4.NioEventLoop的启动 (1)启动NioEventLoop的两大入口 (2)判断当前线程是否是NioEventLoop线程 (3)创建一个线程并启动 (4)NioEventLoop的启动总结 (…

前端项目中应该如何选择正确的图片格式

在前端项目中选择正确的图片格式是优化页面性能、提升用户体验的关键步骤之一。以下是常见图片格式的特点、适用场景及选择建议&#xff0c;帮助你在不同场景下做出最优决策&#xff1a; 一、常见图片格式对比 格式特点适用场景不适用场景JPEG- 有损压缩&#xff0c;文件小- 不…

保姆级 STM32 HAL 库外部中断教学

1. 外部中断概述 为什么用外部中断&#xff1f; 当按键按下时&#xff0c;CPU 无需轮询检测引脚状态&#xff0c;而是通过中断机制立即响应&#xff0c;提高效率&#xff0c;适用于实时性要求高的场景。 关键概念 EXTI (External Interrupt/Event Controller)&#xff1a;ST…

Postman高级功能深度解析:Mock Server与自动化监控——构建高效API测试与监控体系

引言&#xff1a;Postman在API开发中的核心价值 在数字化时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为系统间交互的“神经网络”&#xff0c;其质量直接影响用户体验与业务连续性。然而&#xff0c;传统API测试面临两大挑战&#xff1a; 开发阶段依赖…

【程序人生】成功人生架构图(分层模型)

文章目录 ⭐前言⭐一、根基层——价值观与使命⭐二、支柱层——健康与能量⭐三、驱动层——学习与进化⭐四、网络层——关系系统⭐五、目标层——成就与财富⭐六、顶层——意义与传承⭐外层&#xff1a;调节环——平衡与抗风险⭐思维导图 标题详情作者JosieBook头衔CSDN博客专家…

【最后203篇系列】020 rocksdb agent

今天还是挺开心的一天&#xff0c;又在工具箱里加了一个工具。嗯&#xff0c;但是快下班的时候也碰到一些不太顺心的事&#xff0c;让我有点恼火。我还真没想到一个专职的前端&#xff0c;加测试&#xff0c;以及其他一堆人&#xff0c;竟然不知道后端返回的markdown,在前端渲染…

10-- 网络攻击防御原理全景解析 | 从单包攻防到DDoS军团作战(包你看一遍全记住)

&#x1f6e1;️ 网络攻击防御原理全景解析 | 从单包攻防到DDoS军团作战 如果你也对网络工程师的内容感兴趣的话&#xff0c;欢迎看我的最新文章9–BGP路由黑洞&#xff08;超万字大解析&#xff09;&#xff1a;网络世界的“百慕大三角“逃生指南(BGP路由配置实验含路由黑洞,…

解锁Python print()函数高级用法

print() 是 Python 中最常用的函数之一,用于将内容输出到控制台。虽然它的基本用法非常简单,但 print() 函数还支持许多高级功能,如格式化输出、重定向输出、控制分隔符和结束符等。 1. print() 函数的基本用法 1.1 语法 print() 函数的基本语法如下: print(*objects, …

鬼泣:动作系统3

文章目录 self-Tag&#xff1a;可以直接在游戏运行时通过标签区分不同Actorsolid隔离&#xff1a;模块化低耦合&#xff1a;将功能拆分成多个模块&#xff0c;修改单一模块时无需修改其他模块 动作优先级&#xff1a;当前动作能否打断上一动作函数不能使用timelineset timer by…

Polymer入门指南:从零开始构建、组织、管理Web Component

前言 Web Component是一种强大的技术&#xff0c;它允许开发者创建可重用的自定义元素&#xff0c;其功能和样式都与原生HTML元素类似。Polymer是一个用于创建Web Component的库&#xff0c;简化了开发过程。今天我们将一起来了解如何基于Polymer开发Web Component。 什么是P…