V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rqxiao
V2EX  ›  程序员

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

  •  
  •   rqxiao · Aug 13, 2020 · 3596 views
    This topic created in 2094 days ago, the information mentioned may be changed or developed.

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

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