令人纠结的400 bad request

本人之前一直是自己写ajax和controller,传值的类型和名称都是自己定义,所以基本上没有出现过400,奈何如今前后端分离….下面介绍一下本次开发与前端联调遇见的坑

传值格式

接口写好后,测试都是用Insomnia工具发请求,表单格式传值,轻松愉快200(以前都是这样传的key,value对应),奈何对接时直接400,尼玛,前端json传值!!直接跪了,让前端改传值方式,弄了半天没结果,说是没用过fetch js传其他类型数据,于是乎改后端,将所有参数封装进对象当中,并使用@RequestBody注解

  @RequestMapping(value = "/simple/testConvert", method = RquestMethod.POST)@ResponseBodypublic String testDateConvert(@RequestBody Paramters paramters) {System.out.println(JSON.toJSONString(paramters));return "hello word!";}

所传字段类型不匹配

任务是分给我和另外一个同事合作的,新同事比较特立独行,直接修改了我的接口文档,将我本来定义的String类型的传值定义成了数组“A,B,C”换成了[“A”,”B”,”C”],400华丽出场。字段类型是400的常见原因,解决方法比较简单,改成需要的类型

日期date与long的转换

调试同事接口的时候,出现了个奇怪的现象http://localhost:8080/MANAGER-APP/blogger/queryBloggerList?source=1&beginTime=&endTime=总是400,然而将后面两个参数删除http://localhost:8080/MANAGER-APP/blogger/queryBloggerList?source=1正常访问,why难道不是等价的吗?原因未解,希望有知道的大神留言相告,不胜感激。最后查查资料,方法有3

  1. 将时间类型从Date改成Long
  2. 使用post+json传值
  3. 重写绑定方法
    前两个方法比较简单,mark一下最后一种,上代码

    @InitBinder
    private void dateBinder(WebDataBinder binder) {//设置你需要的日期格式,传入的参数必须能被这种格式解析SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");//Create a new CustomDateEditorCustomDateEditor editor = new CustomDateEditor(dateFormat, true);//Register it as custom editor for the Date type,以后传入的时间都用这个格式解析binder.registerCustomEditor(Date.class, editor);
    }
    

    加上面方法加在controller类中,已经证明好使

HTTP400 的坑相关推荐

  1. 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)

    目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...

  2. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  3. flask sqlalchemy踩坑记录

    查询 坑1: 查询不存在返回值不全是None 当使用first().one()等函数进行查询时,如果查询不存在,返回值为None 但是如果使用all().paginate()等函数进行查询是,如果返回 ...

  4. mac git使用与配置踩过的坑

    #mac git使用与配置踩过的坑 标题mac配置git ssh密钥 参考链接mac配置git ssh key go get安装失败的解决方法 go get约等于git clone+go instal ...

  5. 你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里

    引言    DateTime数据类型是一个复杂的问题,复杂到足以让你在编写[将日期从Web服务器返回到浏览器]简单代码时感到困惑. ASP.NET MVC 5和 Web API 2/ASP.NETCo ...

  6. (转)面试必备技能:JDK动态代理给Spring事务埋下的坑!

    一.场景分析 最近做项目遇到了一个很奇怪的问题,大致的业务场景是这样的:我们首先设定两个事务,事务parent和事务child,在Controller里边同时调用这两个方法,示例代码如下: 1.场景A ...

  7. java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得

    该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...

  8. Python 常见的坑汇总

    1. 列表与 * 操作 Python 中,* 操作符与 list 结合使用,实现元素复制. 复制 5 个空列表: In [1]: [[]] * 5 Out[1]: [[], [], [], [], [ ...

  9. 20150726 填坑日记

    三中内填坑: 1. 组合数递推什么的 C(m,n)=C(m,n-1)+C(m-1,n-1).填了个大坑,以前没认真听课QAQ 2. 裸题过河卒 3. 缺角正方形摆放车统计,分上下部分,枚举上部分放几个 ...

最新文章

  1. tensorflow1.0代码迁移到2.0官方指导
  2. 新建网站与新建Asp.Net+Web+应用程序的区别
  3. 二级菜单HTML原理,CSS多级菜单的实例代码讲解
  4. 前端开发~H5 ·学习笔记 ·001——【HTML介绍、常用HTML标签】
  5. 达观杯文本智能处理(1)
  6. HDU 2825 Wireless Password(AC自动机 + 状压DP)题解
  7. mysql sys exec_mylab_sys_exec UDF调用mysql外部系统命令(For linux)
  8. php 简繁体转换类库,简体中文转换为繁体中文的PHP函数
  9. 分析百度搜索算法中:收录骤增骤减背后的原因
  10. 冒泡排序(Java)(完整代码)
  11. python泰坦尼克号数据预测_Python机器学习预测泰坦尼克号乘客生存率(kaggle项目)...
  12. Django+Vue开发生鲜电商平台之3.数据模型设计和资源导入
  13. $reday和window.onload()
  14. 【观察】PowerScale:构筑“智慧广电”创新基石
  15. 虚拟机里博图能连接上实物PLC,但是HMI仿真不能连接实物PLC
  16. web入门 命令执行 web53-web55
  17. Tensorflow安装过程的一些问题及解决办法
  18. U3D Shader半兰伯特模型
  19. 又当爹又当妈的产品经理
  20. LeetCode高频题:《逆水寒》在地图的制作中,美术在地图上刷一片连通区域,连通区域自动填充,请你判断给定几个点位置,他们是否属于被刷区域

热门文章

  1. linux mkfs 源码,源码安装mkfs.jffs2
  2. 瑜伽,不仅仅是瑜伽,敬艾扬格大师
  3. vue computed
  4. 北京媒体邀约公司:新品发布会活动怎么邀请北京媒体记者采访报道
  5. win7怎么设置电脑自动关机
  6. Python 爬取“工商秘密”微博后,我做了这个“可视化大屏”(附gif图)
  7. 1.6万亿参数你怕了吗?谷歌大脑发布语言模型 Switch Transformer,速度碾压T5
  8. 100919 中软实训之疲劳战
  9. eCognition8分类初级教程
  10. 广电总局规定:电商直播平台加强内容审核