接口400错误解析

article/2025/10/4 8:05:09

    今天我遇上一个让我很痛心的错误400。对程序员来说,这可能是一个最简单的错误码。因为这个相应并没有进拦截器,更没有进到Controller层。可我在解决这个问题时,质询了很多朋友不解,百度各种方案无效。苦苦耗费我大半天时间。

        首先,遇到400问题,最大几率是出现了数据类型不一致的问题,简单来说是Controller层不用正确读取你发送请求附带的参数。该例是我前端传送JSON格式,使用postmen接收。

    一.发现400错误的,第一步确认postmen中发送的数据类型是json。比如Headers中Content-Type类型是application/json;或是前端代码Ajax中添加:contentType: 'application/json;charset=UTF-8'(如图);

    二.第一步确认postmen中发送的数据格式是否正确。postmen中经常有人有漏写一对“{}“或是缺少逗号,引号,冒号的小问,好在postmen会自动报错提示; 而在前端中你必须重新包装传入参数为JSON型。使用JSON.stringify(params)将params参数重新包装;

    三.正常解决以上两个问题,多数人错误也该解决了。如果还没有,我们就要在Controller接收处查找问题。

   顺带一说:前端用json传入,后端如果用对象接收,及时传入变量名与该对象的属性名对应上,也不会自动封装进去,当然也不会直接报错。如果想json型自动转换成对象,需要在对象前面添加@RequestBody注解。它会将JSON进行转换成为你指定的对象。


        但是我个人更喜欢用JSONObeject或Strng去接受,在用手动将它转化为我需要的对象,因为我传入的对象可能是嵌套好的,其中有一个对象,还有其他对象的List。在头部自动转化就会出现一些问题。


言归正传,第三个可能出现400的问题就在这。使用RequestBody转化成String时,意外报错,类型不匹配。这一点也是我万万没想到的。因为之前一个项目基本都是用String在接收前端的JSONO对象。这次却卡在400处。解决的方案很简单,使用JSONObject原原本本的接收JSON对象!直接使用!可正常情况String接收也是可以的,这点让我很费解,花了不少时间也没能找到原因。可能是注解的配置问题,又或者是因为使用SSM和springBoot框架的差异。

在此也希望得到大神网友的解惑!


    



http://chatgpt.dhexx.cn/article/PBIhkHBD.shtml

相关文章

400错误请求怎么解决_什么是400错误请求错误(以及如何解决)?

400错误请求怎么解决 A 400 Bad Request Error occurs when a request sent to the website server is incorrect or corrupt, and the server receiving the request can’t understand it. Occasionally, the problem is on the website itself, and there’s not much you c…

HTTP 400错误

HTTP 400错误: 400 是 HTTP 的状态码,主要有两种形式: 1、bad request 意思是 “错误的请求”;2、invalid hostname 意思是 “不存在的域名”。 400 Bad Request 是由于明显的客户端错误(例如,格式错误的…

rapidjson安装学习

这里主要记录几个要点,后面来补充吧,很晚了 源码是鹅厂大佬写的,佩服佩服~ 一、RapidJSON介绍及资料 RapidJSON是腾讯开源的C JSON解析及生成器,只有头文件的C库,跨平台。 RapidJSON 是一个 C 的 JSON 解析器及生成器…

rapidjson安装使用

前言:仅个人小记。 正文 由于 rapidjson是 “header-only”的C库,故而直接将头文件目录拷贝到系统目录或者指定目录即可完成安装。 参考材料: rapidjson代码仓库 https://github.com/Tencent/rapidjson rapidjson 文档 https://rapidjson.…

rapidjson创建json字符串

参考链接&#xff1a;http://rapidjson.org/zh-cn/ #include "json/stringbuffer.h" #include "json/prettywriter.h"void getJson() {rapidjson::StringBuffer buf;rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(buf);writer.StartObj…

RapidJson踩坑记录

用于记录RapidJson使用中的坑位&#xff0c;持续更新。关于rapidjson的详细说明&#xff0c;可以参加参考文档&#xff1a;http://rapidjson.org/zh-cn/md_doc_tutorial_8zh-cn.html#CreateString 1、添加字符串元素 现象&#xff1a; #include "rapidjson/document.h&…

c++ rapidjson

下面rapid json代码已在vs2017验证&#xff0c;特别地&#xff0c;用rapid json可以解析中文字符串&#xff0c;不会中文乱码。 第一步&#xff1a;去https://github.com/Tencent/rapidjson/上下载头文件&#xff0c;只需要其中的include文件夹。也可以在csdn上下载&#xff1…

RapidJSON简介及使用

RapidJSON是腾讯开源的一个高效的C JSON解析器及生成器&#xff0c;它是只有头文件的C库。RapidJSON是跨平台的&#xff0c;支持Windows, Linux, Mac OS X及iOS, Android。它的源码在GitHub - Tencent/rapidjson: A fast JSON parser/generator for C with both SAX/DOM style …

JSON--rapidjson介绍

JSON--rapidjson 1 RapidJSON简介2 C/C Json库对比一致性解析时间解析内存Stringify Time&#xff08;string 2 json&#xff09;Prettify Time&#xff08;美化格式时间&#xff09;代码大小 3 几个重点库介绍rapidjsonnlohmann-jsonjsoncppcjson 参考 1 RapidJSON简介 Rapid…

RapidJSON入门:手把手教入门实例介绍

RapidJSON优点 跨平台 编译器&#xff1a;Visual Studio、gcc、clang 等 架构&#xff1a;x86、x64、ARM 等 操作系统&#xff1a;Windows、Mac OS X、Linux、iOS、Android 等 容易安装 只有头文件的库。只需把头文件复制至你的项目中。 独立、最小依赖 不需依赖 STL、BOOST …

oracle listagg如何去重

listagg去重 去重思路&#xff1a;利用listagg会忽略null值的特点 按ENTITY_GROUP_RRN 分组&#xff0c;用 listagg 分别合并 EQPT_ID 与 STATION_ID &#xff0c;同时要求去重 表 T_TEST 数据如下&#xff1a; EQPT_IDENTITY_GROUP_RRNSTATION_IDTOOL-00110493721JITAI-1TO…

mysql listagg within_Oracle的 listagg() WITHIN GROUP ()函数使用

1.使用条件查询 查询部门为20的员工列表 -- 查询部门为20的员工列表 SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO 20 ; 效果&#xff1a; 2.使用 listagg() WITHIN GROUP () 将多行合并成一行 SELECT T .DEPTNO, listagg (T .ENAME, ,) WITHIN GROUP (ORDER …

listagg结果去重

最近在一个项目中用到了listagg方法&#xff0c;但是在组合结果中出现有重复的情况。默认的结果如下 于是我就写了一个方法对listagg的结果去重&#xff0c;也可以对该格式的字符串去重&#xff0c;方法如下 create or replace function listaggpure(targetStr varchar2,seper…

Oracle函数之listagg函数

语法 有点难以看懂&#xff0c;个人理解listagg是list aggregate的缩写&#xff08;错了勿喷&#xff09;&#xff0c;也就是列表总计&#xff0c;聚合的意思。 官方文档解释为&#xff1a; LISTAGG orders data within each group specified in the ORDER BY clause and then …

listagg()行转列函数

--基础数据 DROP TABLE "ZYH_TEST"; CREATE TABLE "ZYH_TEST" ("ID" NUMBER(19) NOT NULL ,"NAME" VARCHAR2(255 BYTE) ,"CREATETIME" DATE ,"SCORE" NUMBER ,"CLASSID" VARCHAR2(255 BYTE) )INSERT I…

oracle listagg支持,PostgreSQL行列转换(兼容oracle listagg)

oracle11g开始支持的listagg函数替代了wmconcat来实现行列转换的功能。 listagg函数的用法: oracle行列转换例子: —建表https://www.cndba.cn/foucus/article/3929https://www.cndba.cn/foucus/article/3929 SQL> create table b (id number,name varchar2(20)); Table c…

mysql listagg函数_SQLSERVER中的ListAGG

跃然一笑 MySQLSELECT FieldA , GROUP_CONCAT(FieldB ORDER BY FieldB SEPARATOR ,) AS FieldBs FROM TableName GROUP BY FieldA ORDER BY FieldA;Oracle&DB2SELECT FieldA , LISTAGG(FieldB, ,) WITHIN GROUP (ORDER BY FieldB) AS FieldBs FROM TableName GRO…

mysql listagg within_Oracle函数之LISTAGG

最近在学习的过程中&#xff0c;发现一个挺有意思的Oracle函数&#xff0c;它可实现对列值的拼接。下面我们来看看其具体用法。 最近在学习的过程中&#xff0c;发现一个挺有意思的Oracle函数&#xff0c;它可实现对列值的拼接。下面我们来看看其具体用法。 用法&#xff1a; 对…

listagg

1.创建数据表&#xff0c;准备测试数据 CREATE TABLE MK_STUDENT(ID NUMBER(18) NOT NULL,STU_NAME VARCHAR2(200),STU_SCORE VARCHAR2(50),PRIMARY KEY (ID) ); ALTER TABLE MK_STUDENT ADD KEMU VARCHAR2(200);INSERT INTO MK_STUDENT (ID,STU_NAME,STU_SCORE,KEMU) VALUES …

listagg( )详解

想象一个场景&#xff0c;现实生活中一个人有许多手机号已是常态&#xff0c;数据库中也会有类似的结构。 大家肯定想知道listagg()有什么样的效果&#xff1a; 案列分析 一个表中有许多数据&#xff0c;名字叫张三的有许多手机号。希望查询结果出来是分组且清晰。 select …