• Springboot接收http参数总结(最简单易懂)


    1. 前端能携带请求参数的地方

    http请求一半前端请求参数放在三个地方:请求头,请求查询参数(Query String),请求体。
    请求体需要获取HttpServletRequest对象才能获取。

    2. 请求体常见格式

    而请求体中可以存放多种格式的数据,前端通过发送的请求头参数content-type来表示自己放在请求体中参数的格式是什么。一般常见的也有三种:form-data,x-www-form-urlencoded,application/json。
    还有很多很多中请求体格式,但是其他格式很少使用,本文也会对其如果接收进行总结。

    3. 什么时候用@RequestBody

    如果接收的是请求体,并且请求体是application/json就用@RequestBody注解。

    4. @RequestParam

    如果接收请求查询参数(url)或者请求体(form-data或x-www-form-urlencoded)格式,那么可以直接用相同名称请求参数对象去接收,或者用javabean去接收。如果接收的对象和请求的参数名不相同,就需要用@RequestParam来指定需要接收哪个。

    5. 例子

    同时接收请求体和请求查询参数(Query String),并且同时使用javabean和string来接收querystring。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接收正常,

    6. 总结

    1. 接收json类型的请求体就在接收参数上加@RequestBody。
    2. 其他情况直接用自定义对象或者内置数据类型对象不用加注解接收,如果需要指定接收哪个参数,就加@RequestParam。
    3. 如果你的参数中有HttpServletRequest类型的参数,也会被自动注入。通过HttpServletRequest对象可以获取请求的所有内容,包括请求头,请求查询参数(url),请求体。

    7. 接收请求体类型为application/octet-stream

    application/octet-stream表示请求体内容为二进制数据,没有键值对。类似于直接读取文件流。
    在这里插入图片描述
    直接通过httpServletRequest.getInputStream()获取请求体的流。

  • 相关阅读:
    【面试经典150 | 链表】两数相加
    ElasticSearch之结构化搜索
    这种动态规划你见过吗——状态机动态规划之股票问题(上)
    将十进制100.25转换成短浮点数格式(IEEE754例题)
    WPF十六(页面内嵌加载)
    自我成长自学必备网站,终生学习平台
    详解c++---map和set的封装
    【业务知识】发票系统设计知识学习二
    报错记录—feign转对象为linkedHashMap
    Delphi 11.3之FireMonkey入门(8)-TImage
  • 原文地址:https://blog.csdn.net/qq_51114283/article/details/133745150