接口400错误解析

接口400错误解析   今天我遇上一个让我很痛心的错误400。对程序员来说,这可能是一个最简单的错误码。因为这个相应并没有进拦截器,更没有进到Controller层。可我在解决这个问题时,质询了很多朋友不解,百度各种方案无效。苦苦耗费我大半天时间。        首先,遇到400问题,最大几率是出现了数据类型不一致的问题,简单来说是Controller层不用正确读取你发送请求附带的参数。该例是我前端传送JSON格…

大家好,又见面了,我是你们的朋友全栈君。

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

接口400错误解析

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

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

接口400错误解析接口400错误解析

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

接口400错误解析

接口400错误解析

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

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

接口400错误解析

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

接口400错误解析

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

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

    


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131136.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux收发邮件_linux mail命令

    linux收发邮件_linux mail命令第一步:下载邮件   yuminstallmailx安装过程中有提示,直接回车即可。第二步:进入etc/mail.rcvimetc/mail.rc  设置一些参数,此处用163邮箱,先注册163邮箱,并进入设置里设置勾选POP3/SMTP与IMAP/SMTP选项,并设置自己的授权码。解释参数:setfrom=163邮箱地址     …

  • Android Log日志

    Android Log日志

  • 迎接平价时代 光伏逆变器行业的演进和格局「建议收藏」

    迎接平价时代 光伏逆变器行业的演进和格局

  • 全方位剖析QT 面试题 胡峰原创

    全方位剖析QT 面试题 胡峰原创自己毕业后参加过很多面试,当然有以应聘者的身份参加的也有以面试官的身份参加的,下面我想总结下一些面试官出题的方向和回答的技巧,下面截取我对一个应届毕业生的面试过程作为讲解,希望能对再今后的面试任职时有所帮助。姓名AAA性别男民族汉族籍贯河北省AA出生日期AAA婚姻状况否学历学士政治面貌AA专业计算机科学与技术健康情况健康毕业院校AAA邮编A联系电话AAA邮箱AA个人技能我学习了嵌入式方向所涉及的51单片机、操作系统、ARM、Qt等,期间做过许多小实验,单片机最经典的

  • icem网格划分如何给内部面网格_icem结构化网格划分 ICEM里面设置一下就可以自动划分网格,为什么要用块?…

    icem网格划分如何给内部面网格_icem结构化网格划分 ICEM里面设置一下就可以自动划分网格,为什么要用块?…ICEM里面设置一下就可以自动划分网格,为什么要用块?块划分方法是结构化网格划分,相比于非结构化网格有较规则形状的网格质量可以做的很高,进行数值计算时也可以采用更高阶的格式(非结构化最高二阶精度)。图中网格划分方法可以先做出长方体,然后在其侧面拉伸出来小圆柱,也可以这4个分开做网格,最后用interface连接起来即可icem中想要将模型划分成几个部分,分别应用不同的网格划分,该怎么做?是非结构化…

  • icmp回复报文_ICMP报文和ping命令[通俗易懂]

    icmp回复报文_ICMP报文和ping命令[通俗易懂]一、ping的原理ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。二、Ping工作过程——假定主机A的IP地址是192.168.1.1,主机B的IP地址是192….

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号