zoukankan      html  css  js  c++  java
  • POST/GET请求中RequestBody和RequestParam的应用场景

    POST请求时
    @RequestBody --> JSON字符串部分
    @RequestParam --> 请求参数部分
    application/json格局图

     
    图一.png

    form-data、x-www-form-urlencoded格局图
     
    图二.png

    1、从content-type方面总结:
    ① form-data、x-www-form-urlencoded:不可以用@RequestBody;可以用@RequestParam。见postman的格局,这两种方式的时候没有json字符串部分。
    ② application/json:json字符串部分可以用@RequestBody;url中的?后面参数可以用@RequestParam。见postman的格局

    2、从两种注解方式总结:
    @RequestBody

    (

    @RequestParam

    (
    (
    (@RequestParam Object object)
    不管application/json、form-data、x-www-form-urlencoded都不可用
    

    既不是@RequestBody也不是@RequestParam,没有指定参数哪种接收方式

    (Map map)
    (Object object)
    application/json时候:json字符串部分不可用,url中的?后面添加参数不可用。
    因为没有指定,它也不知道到底是用json字符串部分还是?后面添加参数部分,所以干脆都不可以用
    form-data、x-www-form-urlencoded时都不可用,见图二
    
    (HttpServletRequest request)
    application/json不可用
    form-data、x-www-form-urlencoded时可用
    

    GET请求
    @RequestBody

    RequestBody -- Map / Object
    GET请求中不可以使用

    @RequestParam

    (
    (
    (

    当使用GET请求时,通过postman添加?后面的参数,不用在url中自己一个一个拼,点击Params,在下面key-value中输入就自动拼接到url中


     
    GET请求问号后添加参数.png

    举栗子
    上传文件,包含了图中圈出来的两部分

     
    图二.png

    如果这样,没有@RequestParam,那么url?后的参数就拿不到

    如果control中这样接收,本来想formData只接收url?后的参数,结果将{ "retCode": null, "data": true }这部分内容也拿到了,真实意外之喜。字符串这部分内容还可以从request中取到,见下面完整方法。

    完整方法

        /**
         * 导入
         */
        
     
     



    作者:墨色尘埃
    链接:https://www.jianshu.com/p/4981911d5e15

  • 相关阅读:
    对《应试教育》有感
    月总结
    有趣的生活,有趣的比赛
    H5之js拼接select级联优化
    H5之js拼接select与input的级联
    OA-分页查询(抽象最终版)二
    OA-分页查询(抽象最终版)一
    今目标反思
    电子商务运作的随想
    旅游票务网站
  • 原文地址:https://www.cnblogs.com/panchanggui/p/12172332.html
Copyright © 2011-2022 走看看