V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GeekHub
rqxiao
V2EX  ›  程序员

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

  •  
  •   rqxiao · 46 天前 · 1061 次点击
    这是一个创建于 46 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    20 条回复    2020-08-14 13:01:00 +08:00
    gotonull
        1
    gotonull   46 天前
    没看懂问的啥意思
    leafre
        2
    leafre   46 天前
    http://127.0.0.1:8808/test/t1?name=bob&id=aaaaa&orderNum=2019&charset=utf-8
    @RequestParam("name")
    rqxiao
        3
    rqxiao   46 天前
    @gotonull 就是想请问下 一般接受 urlEncode 参数时,后台代码 有没有可以单独接受每个参数的写法

    request.getParameterMap()返回了所有参数拼接的一个字符串
    mgcnrx11
        4
    mgcnrx11   46 天前 via iPhone
    2 楼就是啦
    rqxiao
        5
    rqxiao   46 天前
    @mgcnrx11 这样也不行啊 回调我方法的时候不会是这样的 http://127.0.0.1:8808/test/t1?name=bob&id=aaaaa&orderNum=2019&charset=utf-8 这种格式的
    rqxiao
        6
    rqxiao   46 天前
    @leafre
    http://127.0.0.1:8808/test/t1?name%3Dbob%26id%3Daaaaa%26orderNum%3D2019%26charset%3Dutf-8 我用这个试好像还是不行
    leafre
        7
    leafre   46 天前
    @rqxiao 加不加 RequestParam,应该都能取到,urlEncode 跟服务端没关系,奇怪,debug 下看看 request parameter 吧
    heiybb
        8
    heiybb   46 天前
    chendy
        9
    chendy   46 天前
    为什么把 queryString 的&和=都给 encode 了。。。
    heiybb
        10
    heiybb   46 天前
    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
        11
    Jackeriss   46 天前 via iPhone
    Google 去,别再水帖了
    Kirsk
        12
    Kirsk   46 天前 via Android
    拦截器 百度 修改 request 的 Parameter 参数 类似这样的接口不多就没必要重写了
    siweipancc
        13
    siweipancc   46 天前 via iPhone
    如果你不知道怎么捕获参数,那么看 2l,如果知道还提出这个问题,我当你是有了奇葩的传参需求,建议先胖揍设计接口的人
    cheng6563
        14
    cheng6563   46 天前 via Android
    直接取 URL 分割逗号吧
    maopian
        15
    maopian   46 天前
    让调用接口方的只 encode 参数值
    ztechstack
        16
    ztechstack   46 天前 via iPhone
    @RequestParam(“name”)String name
    intmax2147483647
        17
    intmax2147483647   45 天前
    别干程序员了
    rqxiao
        18
    rqxiao   45 天前
    @intmax2147483647 不是 我就想问下 urlencode 了&和= 您有什么办一个个全取出来
    transwill
        19
    transwill   45 天前
    不行就写一个注解,去获取到 request 去处理,封装成 map 来用。最简单还是把传值的人打一顿
    chocotan
        20
    chocotan   45 天前
    把&和=都 urlencode 了,就相当于整个变成了一个参数名,值是 null
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2713 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 14:08 · PVG 22:08 · LAX 07:08 · JFK 10:08
    ♥ Do have faith in what you're doing.