post请求,参数过长导致请求400

背景

近期参与项目,有一个功能在线标注非结构化数据,并把标注内容保存在后台,功能如下:
在这里插入图片描述

意外就这样不出意外的出现了,保存请求400
在这里插入图片描述

排查

第一阶段

  • 参数key没有对应上吗?
  • 事与愿违,如果这么简单,这篇贴子就不会出现了

第二阶段

  • 在前段调试的时候,有一个参数parmas.wsContent引起了我的怀疑:2M?!

在这里插入图片描述

  • 去掉这个参数,请求成功
  • 这个参数截取前50个字符,请求成功

第三阶段

  • 经过第二阶段基本确定是参数过长导致的请求400
    • 网上也确实有说tomcat通过maxPostSize参数限制post请求的参数
    • 需要修改为maxPostSize<=0即可
  • 修改server.xml的Connector标签,增加maxPostSize=0
    • 为什么我改为0不用负数?这就是我随便写的。这正是我这个随便,产生了第四阶段的排查
  • 增加maxPostSize后,意外再次不出意外的出现,artery解析空指针(没有获取到itemid)
Caused by: java.lang.reflect.InvocationTargetException: nullat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.thunisoft.artery.util.ArteryReflectUtil.invokeMethod(ArteryReflectUtil.java:97)... 70 common frames omitted
Caused by: java.lang.NullPointerException: nullat com.thunisoft.artery.parse.visitor.FindItemByIdVisitor.<init>(FindItemByIdVisitor.java:23)at com.thunisoft.artery.service.plugin.util.ArteryPluginUtil.findItemById(ArteryPluginUtil.java:38)at com.thunisoft.artery.form.FormEngine.runItemScript(FormEngine.java:419)... 75 common frames omitted

第四阶段

  • 我尝试着把maxPostSize=-1,请求竟然成功了
  • tomcat官网的maxPostSize参数解释:
    • less than or equal to 0
    • 默认2M,单位是byte(我在排查第三阶段尝试过maxPostSize=10240,我以为单位是kb)
      在这里插入图片描述

为什么maxPostSize=0没用?

  • 之前的less than or equal to 0的tomcat版本5.5,当时没有注意
  • 后续tomcat版本这个参数已经变为less than zero

在这里插入图片描述

  • tomcat的changelog
    • 在tomcat7.0.63版本这个参数就调整为负数

在这里插入图片描述

jetty的相关配置

  • 为什么产品一直没有出现问题,难道是jetty默认这个参数比较大?
    • 本地搭建jetty,启动,发现请求依旧400,只是描述变成了unable to parse form content
    • 网上说这个错误和postSize参数导致

在这里插入图片描述

  • jetty的配置参数,jetty的配置文件已经增加了注释

在这里插入图片描述

  • springboot的内置tas参数
    • com.thunisoft.tas.springboot.autoconfigure.config.props.TasProperties
    • 默认200KB
 @NestedConfigurationPropertyprivate DataSize maxHttpPostSize = DataSize.ofBytes(200000L);

总结

前端和后台参数key对应不上和前端请求参数过长都会导致post请求返回码400。

  • 解决方案:
    • 统一前后端参数key
    • 修改中间件MaxPostSize参数

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

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

相关文章

【无标题】gpt的明年

编辑&#xff1a;桃子 好困 【导读】苹果MAX力加满了&#xff01;爆料称&#xff0c;苹果正秘密研发测试Apple GPT&#xff0c;Siri即将大升级&#xff0c;预计2024年推出。 「置身事外」的苹果&#xff0c;终于要放大招了。 彭博称&#xff0c;苹果正在暗中开发测试人工智能…

OpenAI Sam Altman对AI的最新思考:5.9 投资人峰会访谈 (全文+视频)

作者&#xff1a;城主 | 编辑&#xff1a;腾讯新闻 郝博阳 编者导语&#xff1a; 只经过了一个月&#xff0c;这个引领AI时代的男人似乎对之前的困惑都有了自己的答案。 在经历了数论关于AI监管的对谈和磋商后&#xff0c;最近很少发声的 Sam Altman 又一次接受了新访谈&#x…

穿越重生之门——小数点的风涅槃生之旅

文章导读 大家好&#xff0c;我是数行天下&#xff0c;上文讲述了异常家族新成员空指针从神秘出生到打败邪恶代码控制的AI败类的传奇故事。本篇借助ChatGPT和微软的new bing再推出一篇讲述小数点数字虚拟体从奇异降生到被数据采集程序抓走&#xff0c;送到一个数据清洗的新大陆…

素数判别和大数分解存在多项式算法

数学家假定黎曼猜想是正确的&#xff0c; 并据此认为属于NP完全问题的素数判别和整数分解必存在多项式算法。 NP完全问题与黎曼猜想紧密关联&#xff0c;且知黎曼猜想又是由互异版的哥德巴赫猜想在幕后操盘的。如果说物理学的前沿属于量子论和相对论的统一和细分&#xff0c;那…

阿里版ChatGPT突发官宣问世!紧追百度文心一言

上一篇&#xff1a;走了&#xff01;再无百年阿里~ 来自 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 4月7日 中午&#xff0c;阿里版类 ChatGPT 「通义千问」突然官宣&#xff1a; 没错&#xff0c;就这 3 行简短介绍 1 个官网地址&#xff0c;再无其他“剧透”。…

人工智能前沿——「小海带」超全视觉注意力机制资源分享(附下载链接)

&#x1f496;&#x1f496;>>>加勒比海带&#xff0c;QQ2479200884<<<&#x1f496;&#x1f496; &#x1f3c6;&#x1f3c6;>>>【YOLO魔法搭配&论文投稿咨询】<<<&#x1f3c6;&#x1f3c6; &#x1f431;‍&#x1f3cd;&…

论文投稿指南——什么是SCI,SSCI ,CSSCI

&#x1f384;&#x1f384;目前&#xff0c;在国际科学界&#xff0c;如何正确评价基础科学研究成果已引起越来越广泛的关注。而被SCI、SSCI收录的科技论文的多寡则被看作衡量一个国家的基础科学研究水平、科技实力和科技论文水平高低的重要评价指标。那么&#xff0c;究竟什么…

【论文阅读】基于ChatGPT的用户图书评分偏好预测研究

【论文阅读】基于ChatGPT的用户图书评分偏好预测研究 最近一直在关注大语言模型在各个领域的应用&#xff0c;后续会逐渐发一些比较有意思的论文的阅读记录作为备忘。 论文链接: link 尝试将ChatGPT用在图书推荐场景&#xff0c;并和现有经典的基础协同过滤模型做了一些对比&a…

抖音很火的金钱豹头像来了!各种美化版本

近日&#xff0c;《西游记》中的金钱豹意外走红&#xff0c;当代年轻人因为想金钱暴富&#xff0c;便纷纷用其做头像。《西游记》金钱豹演员估计做梦都没想到&#xff0c;多年以后&#xff0c;自己居然以这种方式爆红 ​ 博主为大家收集了许多类似的头像&#xff0c;大家可以前…

《DBA的一天》新传

有这样一群人&#xff0c; 他们是IT界的“救火员” 时刻“严阵以待” 不管身在何处&#xff0c; 一接到紧急故障电话&#xff0c; 立即打开电脑处理问题是他们的工作常态...... 他们的身影&#xff0c; 时常在客户现场和机房来回切换 只要出现系统宕机&#xff0c; 先来一套“增…

分布式锁用 Redis 还是 Zookeeper?哪家强?

往期热门文章&#xff1a; 1、从3s到25ms&#xff01;看看人家的接口优化技巧&#xff0c;确实很优雅&#xff01;&#xff01; 2、看了我的 mybatis-plus 用法&#xff0c;全公司同事开始悄悄模仿了。。 3、支付宝&#xff1a;多线程事务怎么回滚&#xff1f;说用 Transaction…

谷歌的“GPT”终于憋出来了,但也就和百度打得有来有回。

不知道大家还记不记得&#xff0c;上个月初谷歌画了个 Bard 的大饼&#xff0c;结果画饼时犯了低级错误&#xff0c;让网友嘲讽了半天&#xff0c;甚至公司股价都在当天狂跌 1000 多亿。 不过也不知道该说谷歌够肝还是够勇&#xff0c;在闭关修炼一个多月后&#xff0c;还是在…

【Redis】持久化

文章目录 持久化RDB持久化是什么&#xff1f;能干嘛&#xff1f;配置文件自动触发手动触发 优势劣势修复dump.rdb文件哪些情况会触发RDB快照禁用RDB快照RDB配置优化 AOF持久化是什么能干嘛&#xff1f;AOF工作流程写回策略配置文件说明(6 VS 7)演示(写入aof、恢复、异常处理)优…

和 chatgpt 聊了一会儿分布式锁 redis/zookeeper distributed lock

前言 最近的 chatGPT 很火爆&#xff0c;听说取代程序员指日可待。 于是和 TA 聊了一会儿分布式锁&#xff0c;我的感受是&#xff0c;超过大部分程序员的水平。 Q1: 谈一谈 java 通过 redis 实现分布式 锁 chatGPT: Java通过Redis实现分布式锁&#xff0c;是在多个Java应用…

kafka会丢消息的时刻

十家面试&#xff0c;有八家会问的问题:“kafka会不会丢消息呢”。 有些情况下消息可能会消失。这可能是由于配置错误或误解Kafka的内部原理所致。本文将解释数据丢失可能发生的情况 Provider(Publisher):确认的时候 当消息被发送到发布者时&#xff0c;发布者等待来自代理的…

宕机了,Redis 如何避免数据丢失?

程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 8 分钟。 来自&#xff1a;juejin.cn/post/7193597571305046071 前言AOF 日志是如何实现的写后日志的优势与风险日志的写回策略日志的重写 重写的作用重写的过程RDB快照的原理混合 AOF/RDB总结 前言 如果…

硬件大熊原创合集(2023/02更新)

技术2月份更新篇章&#xff1a; 问了ChatGPT几个硬件问题 智能开关保险丝选型&安规要求 智能墙壁开关电源篇——AC-DC概述 这个月花了很多的精力在梳理产品的技术架构&#xff0c;过程中总会发现很多自己尚且模棱两可的知识点&#xff0c;这让人有一种摸索的越多&#xff0…

足球、篮球、乒乓球的动作识别通用方案开源

北京冬奥会即将开幕&#xff0c;全民健身如火如荼。2020年夏季奥运会有46项体育项目&#xff0c;2022年冬奥会有15项体育项目&#xff0c;丰富的项目涉及的姿势标准也各有区别。运动员如何科学地进行体育锻炼、准确矫正健身动作&#xff1f;教练员如何借助技术提供更智能化的训…

电商导购CPS,淘宝联盟如何跟单实现用户和订单绑定

前言 大家好&#xff0c;我是小悟 做过自媒体的小伙伴都知道&#xff0c;不管是发图文还是发短视频&#xff0c;直播也好&#xff0c;可以带货。在你的内容里面挂上商品&#xff0c;你自己都不需要囤货&#xff0c;如果用户通过这个商品下单成交了&#xff0c;自媒体平台就会…

高考英语口语测试软件,练习英语口语的app有哪些

随着国际化的发展&#xff0c;英语越来越普遍。英语中口语也是很重要的成分之一。也是跟老外交流或者英语考试的重要考点之一。我们有很多方法锻炼口语。什么方法最快捷最有效方便&#xff1f;下面我们看看几款最受欢迎的英语口语练习app。 练习口语的app 1、口语侠 一款非常实…