报错:java.lang.IllegalArgumentException

这篇具有很好参考价值的文章主要介绍了报错:java.lang.IllegalArgumentException。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题表象

开发,测试环境运行正常的接口到现场报错,报错日志关键信息如下:java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986。

问题分析及原因

由于代码在开发测试环境测试通过,判断大概率是现场特殊数据导致问题。查资料得知,如果Get请求的参数包含了特殊字符会引起上文中的报错。向现场确认,查看请求数据,发现参数中存在“[]”特殊字符。
出于网络安全考虑,Web容器默认是不允许Url中存在特殊字符的,对应的字符标准是RFC7230和RFC3986,一旦Url中出现了不符合标准的字符就会报这个异常。

解决方案

方案1:(采用的方案)
修改配置,项目用的是spring-boot内置的tomcat,增加spring配置

server.tomcat.relaxed-query-chars=<,>,[,\,\,],^,`,{,|,}

这个参数控制的是普通参数如果使用路径参数需要增加如下配置

server.tomcat.relaxed-path-chars=<,>,[,\,\,],^,`,{,|,}

方案2:
将Get请求改成Post请求。

方案3:
修改出错的接口,前端对参数进行编码,屏蔽特殊字符,后端解码。文章来源地址https://www.toymoban.com/news/detail-757485.html

到了这里,关于报错:java.lang.IllegalArgumentException的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • java.lang.IllegalArgumentException: Malformed \uxxxx encoding — 记一次maven报错的调试过程

    java.lang.IllegalArgumentException: Malformed \uxxxx encoding — 记一次maven报错的调试过程

    本文唯一发布网站 博客园(官网地址:https://www.cnblogs.com/) 本文地址:https://www.cnblogs.com/zeromi/p/17716933.html 有天需要写个东西,需要翻一下老代码,使用idea打开一个很久没打开的项目,然后不知道为啥到处飘红 在查看了项目的External Labraries列表,发现包都有,再看下项目jdk设

    2024年02月08日
    浏览(8)
  • 解决报错 java.lang.IllegalArgumentException: Cannot format given Object as a Date

    报错原因:我们在SimpleDateFormat.format转化时间格式的时候,传入的值无法转换成date而报的错 我的代码大概就是下面这种 发现SimpleDateFormat.format方法并不适用于LocalDate类型,不然就会报此错误; 这个错误的解决方法都是一样,先把时间转换成date类型,再去调用此方法进行格式

    2024年02月04日
    浏览(11)
  • 已解决:安卓11以上操作文件报错E/MediaProvider: insertFileIfNecessary failed java.lang.IllegalArgumentException: Pr

    已解决:安卓11以上调用相机拍照报错 {“err”: “/storage/emulated/0/temp.jpg: open failed: ENOENT (No such file or directory)”} 以下是异常信息 E/MediaProvider: insertFileIfNecessary failed, java.lang.IllegalArgumentException: Primary directory null not allowed for content://media/external_primary/file; allowed directories are [Do

    2024年02月09日
    浏览(28)
  • 解决java.lang.IllegalArgumentException异常的正确解决方法

    java.lang.IllegalArgumentException 是 Java 编程语言中的一个运行时异常,通常表示向方法传递了一个不合法或不适当的参数。当程序在运行时遇到此类异常,它会立即中断当前的执行流程,并抛出异常信息。理解这个异常的原因并学会如何正确解决,对于编写健壮的 Java 程序至关重

    2024年04月25日
    浏览(11)
  • org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException:

    org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException:

    ES进入bin文件夹启动elasticsearch.bat文件后出现 org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version Caused by: java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 7.17.4 but version 7.16.2 is running java.lang.IllegalArgum

    2024年02月11日
    浏览(42)
  • java.lang.IllegalArgumentException: bound must be positive

    IllegalArgumentException 是Java中的一个异常类,用于在方法中传递非法的参数值时抛出。具体的错误信息 bound must be positive 表示传入的参数边界必须是一个正数。 在Java中,一些方法或构造函数要求参数值是正数。如果传入了负数或零,就会抛出这个异常。要解决此问题,您需要检

    2024年02月04日
    浏览(38)
  • Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str

    Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str

    这个异常意味着你尝试在Java程序中比较一个java.util.Date对象和一个java.lang.String对象,这是无效的比较。Java中的不同类型的对象只能在特定的比较操作中使用。通常,日期对象被用于表示日期和时间信息,而字符串对象用于表示文本信息。因此,Java不允许直接将它们进行比较

    2024年02月16日
    浏览(40)
  • 解决错误 “java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String“ 的

    解决错误 “java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String“ 的

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在 Java 开发中,有时会遇到错误信息 “java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String”,

    2024年02月10日
    浏览(36)
  • Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang

    Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang

    问题:使用spring-mvc进行获取前端参数时报错 具体报错如下: 我使用的是最新版的6.1.4版本的spring-webmvc,传参方式如下 按道理按照之前的写法,就算是没有加@RequestParam注解,这样子也不会报错,很奇怪。 后面发现这是新版本的问题,可能是新版的webmvc改了吧,简单类型应该

    2024年04月15日
    浏览(41)
  • 已解决java.lang.IllegalArgumentException异常的正确解决方法,亲测有效!!!

    已解决java.lang.IllegalArgumentException异常的正确解决方法,亲测有效!!! java.lang.IllegalArgumentException java.lang.IllegalArgumentException是Java中的一个异常,表示传递给方法的参数不合法。 下滑查看解决方法 这个异常通常在方法内部检查参数的有效性时抛出。要解决这个问题,你可以

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包