当前位置: 首页 > 知识库问答 >
问题:

java - springBoot和tomcat项目解析get请求url上的小括号()报400?

公冶谦
2023-07-11

url上带小括号()就报400,

image.png

转义了还是不行

image.png

后台代码

    @RequestMapping(value = "/download")
    public ResponseEntity<Object> download1(@RequestParam String name, @RequestParam String type) {
        logger.info(name, type);
        return new ResponseEntity<>(HttpStatus.OK);
    }

但是如果改成pathVariable就行了

    @RequestMapping(value = "/download/{name}")
    public ResponseEntity<Object> download1(@PathVariable String name, @RequestParam String type) {
        logger.info(name, type);
        return new ResponseEntity<>(HttpStatus.OK);
    }

image.png

url上带()就报错,带[]和{}都没问题,我在前端区也发了,普遍认为是后台的问题

https://segmentfault.com/q/1010000043992007

所以问题出在哪里呢?是@RequestParam的问题吗?tomcat是springboot自带的,也没有特殊配置。

共有3个答案

韦飞尘
2023-07-11

自己新建的项目,测试了一下带括号木有问题
括号不需要转移,方括号和花括号需要转义
既然 400 了,那就看看浏览器控制台和后端的报错吧

司马腾
2023-07-11

这个问题可能是Tomcat的安全配置引起的。在Tomcat 7及以上版本里,URL中的一些字符,包括小括号(),被判定为不安全的,包含这些字符的请求会就会被拒绝,返回400错误。

你可以改一下Tomcat的配置来允许这些字符

tomcat.util.http.parser.HttpParser.requestTargetAllow=|(|)

然后,重启Tomcat来让这个配置生效。这样虽然可以,但是会有安全风险。最好别用这个小括号,你可以用的URL编码或者用其他字符代替.

贾俊喆
2023-07-11

貌似后台也是你写的嘛?换个方法,使用post试试?看看后台日志。你想实现get请求下载嘛》?那你使用文件id

 类似资料:
  • axios的url上带小括号()会报400 我使用axios的get请求下载文件时,给后台发送了文件的文件名,文件名上有小括号,axios会转义中文字符,小括号不被转义 手动转义 我以为是小括号没有被转义报的错,于是手动转义了,但还是不行 这个url看着也没问题,为什么会报400呢? 而且只要文件名不带小括号,就可以下发成功

  • 本文向大家介绍解析AngularJS中get请求URL出现的跨域问题,包括了解析AngularJS中get请求URL出现的跨域问题的使用技巧和注意事项,需要的朋友参考一下 今天早上帮助同学看了一个AngularJS的问题,主要是请求中出现了跨域访问,请求被阻止。 下面是她给我的代码: 出现的问题 我们可以看到他是通过$http的get方式访问URL,一直访问不了,我将具体的response打印到控

  • 使用PHP,我如何解析一个JSON对象,该对象包含方括号中的数组,并由管道“|”分隔? 例如,我需要访问“数据”的第二个组件,在本例中是“英语”。假设长度是可变的,因此不能按字符位置进行切片。

  • 本文向大家介绍浅析python 中大括号中括号小括号的区分,包括了浅析python 中大括号中括号小括号的区分的使用技巧和注意事项,需要的朋友参考一下 python语言最常见的括号有三种,分别是:小括号( )、中括号[ ]和大括号也叫做花括号{ }。其作用也各不相同,分别用来代表不同的python基本内置数据类型。 1.python中的小括号( ):代表tuple元组数据类型,元组是一种不可变序列

  • 我正在用spring WebClient对API进行并行rest调用。响应如下所示 POJOS: 获取产品 这也是有效的,但是有没有一种方法可以直接返回,或者返回更好? (下一步是将产品保存在数据库中)

  • 本文向大家介绍全面解析iOS中同步请求、异步请求、GET请求、POST请求,包括了全面解析iOS中同步请求、异步请求、GET请求、POST请求的使用技巧和注意事项,需要的朋友参考一下 先给大家分别介绍下iOS中同步请求、异步请求、GET请求、POST所代表的意思,然后在逐一通过实例给大家介绍。 1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进