请教 springboot 后台接受 urlEncode 这种数据时,如何可以较好的接受参数

2020-08-13 17:29:38 +08:00
 rqxiao

http://127.0.0.1:8808/test/t1?name%3Dbob%26id%3Daaaaa%26orderNum%3D2019%26charset%3Dutf-8

request.getParameterMap()是可以接受到一个大的字符串

这样是拿不到的(String name, String id)拿到的参数都是 null

2926 次点击
所在节点    程序员
20 条回复
gotonull
2020-08-13 17:50:50 +08:00
没看懂问的啥意思
leafre
2020-08-13 17:56:00 +08:00
http://127.0.0.1:8808/test/t1?name=bob&id=aaaaa&orderNum=2019&charset=utf-8
@RequestParam("name")
rqxiao
2020-08-13 17:58:17 +08:00
@gotonull 就是想请问下 一般接受 urlEncode 参数时,后台代码 有没有可以单独接受每个参数的写法

request.getParameterMap()返回了所有参数拼接的一个字符串
mgcnrx11
2020-08-13 18:03:12 +08:00
2 楼就是啦
rqxiao
2020-08-13 18:17:59 +08:00
@mgcnrx11 这样也不行啊 回调我方法的时候不会是这样的 http://127.0.0.1:8808/test/t1?name=bob&id=aaaaa&orderNum=2019&charset=utf-8 这种格式的
rqxiao
2020-08-13 18:26:57 +08:00
@leafre
http://127.0.0.1:8808/test/t1?name%3Dbob%26id%3Daaaaa%26orderNum%3D2019%26charset%3Dutf-8 我用这个试好像还是不行
leafre
2020-08-13 18:38:09 +08:00
@rqxiao 加不加 RequestParam,应该都能取到,urlEncode 跟服务端没关系,奇怪,debug 下看看 request parameter 吧
heiybb
2020-08-13 18:48:17 +08:00
chendy
2020-08-13 18:50:00 +08:00
为什么把 queryString 的&和=都给 encode 了。。。
heiybb
2020-08-13 18:52:08 +08:00
consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}, produces = MediaType.APPLICATION_JSON_VALUE

mapping 里面加这个好像也可以
ref: https://blog.knoldus.com/how-to-handle-url-encoded-form-data-in-spring-rest/
Jackeriss
2020-08-13 18:55:22 +08:00
Google 去,别再水帖了
Kirsk
2020-08-13 19:08:21 +08:00
拦截器 百度 修改 request 的 Parameter 参数 类似这样的接口不多就没必要重写了
siweipancc
2020-08-13 19:16:02 +08:00
如果你不知道怎么捕获参数,那么看 2l,如果知道还提出这个问题,我当你是有了奇葩的传参需求,建议先胖揍设计接口的人
cheng6563
2020-08-13 19:17:54 +08:00
直接取 URL 分割逗号吧
maopian
2020-08-13 19:19:05 +08:00
让调用接口方的只 encode 参数值
zliea
2020-08-13 19:22:18 +08:00
@RequestParam(“name”)String name
intmax2147483647
2020-08-14 09:46:00 +08:00
别干程序员了
rqxiao
2020-08-14 10:12:57 +08:00
@intmax2147483647 不是 我就想问下 urlencode 了&和= 您有什么办一个个全取出来
transwill
2020-08-14 11:21:10 +08:00
不行就写一个注解,去获取到 request 去处理,封装成 map 来用。最简单还是把传值的人打一顿
chocotan
2020-08-14 13:01:00 +08:00
把&和=都 urlencode 了,就相当于整个变成了一个参数名,值是 null

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/698036

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX