• post请求参数注解


    post方法与get方法最大的一个区别就是post方法有消息体,消息体的格式会通过消息头中的content-type字段来定义。
    post请求与get请求的区别
    参考博客
    一个post请求,消息体里的数据默认是 application/x-www-form-urlencoded 的格式接受键值对格式的参数,可以说自定义类型,还有json对象等。
    其他还有,比如最常用的json格式——Content-Type=application/json

    post接口编写时,参数前加上@RequestBody注解,表示接收前端传递来的请求体中content-type不是默认的application/x-www-form-urlcoded的内容,如json字符串格式的数据。
    前端这么封装参数:

     data: JSON.stringify({
                "actiName":name
            }),
    

    postman测试时,这种参数需要写在body栏下的raw,拼成一个json格式。不然有org.springframework.web.HttpMediaTypeNotSupportedException异常。

    如果参数没有被该注解修饰,前端直接传json对象,此时,这样封装参数:

    var data = {
        customerName:customerName,
    };
    

    对于@RequestParam(同时适用于get和post)修饰的参数是key-value里的参数,Spring将Request.getParameter()中的Key-Value参数Map转化成了参数@RequestParam修饰的基本类型数据或对象。
    既可以写在postman的params栏,也可以写在body栏下的form-data( multipart/form-data,既可以上传文件等二进制数据,也可以上传表单键值对)或application/x-www-form-urlencode下

    @RequestPart修饰文件上传参数,是form-data类型。

    ps:
    如果参数前写了@RequestParam(xxx),那么前端必须有对应的xxx名字才行(不管其是否有值),如果没有xxx名的话,那么请求会出错,报400
    如果参数前不写@RequestParam(xxx)的话,那么就前端可以有可以没有对应的xxx名字才行,如果有xxx名的话,那么就会自动匹配;没有的话,请求也能正确发送。

    feign消费服务时,如果参数前什么也不写,那么会被默认是@RequestBody的 https://www.cnblogs.com/zhuhui-site/p/10088238.html

  • 相关阅读:
    170601、单例模式的三种水平代码(第三种最佳)
    解决打开pycharm有带图片md文件卡死问题
    Dockerfile 操作
    Docker 命令大全
    MAC
    mac 搭建selenium与ChromeDriver环境
    Mac进行 usr/bin 目录下修改权限问题,operation not permitted
    pytest文档6-fixture之yield实现teardown
    pytest文档5-fixture之conftest.py
    pytest文档4-测试用例setup和teardown
  • 原文地址:https://www.cnblogs.com/cashew/p/8978589.html
Copyright © 2020-2023  润新知