Http请求-----参数传输域封装

可以安装一个postman ,上边可以灵活的选择请求方式,content-type类型,参数类型等 发送求情

前台部分关心的:

Ajax或者vue中的axios等,大部分请求都是按照表单的形式发送的,表单content-type有两种:

application/x-www-form-urlencoded: 表单的默认形式,大多数发送请求工具默认的形式,用的最多的,不管get/post ,这时候参数都会被转化键值对的形式,后台直接写参数,或者实体,不要用@RequestBody ITaskQueryVo   

multipart/form-data  :上边那种只能传递字符串,这种既可以传递多个文件,又可以传递多个字符串参数,对于参数后台还是和上边一样,直接写参数,或者直接写实体,不要用@RequestBody ITaskQueryVo   ,对于文件后台通过resquest就可拿到

 

let formData = new FormData();
formData.append("itemName", "小明");
formData.append("updateType", 0);

//文件 先判断上传组件有文件 
if (this.fileList[0]) {
//file 是随便起的,后台不用这个,值就是组件拿到的文件 
        formData.append("file", this.fileList[0].raw);
      }

//发送请求
let config = {
          headers: {
            "Content-Type": "multipart/form-data"
          }
        };
        this.loading = true;
        this.$http.post("/task/save", formData, config)

 

content-type 为application/json  时

这种前台传可以把content-type 类型设置为application/json  ,参数写的时候还是json格式(该咋写就咋写,和平时一样),不管get还是post都行,但最终参数不再是转化为键值对,而是以raw得方式发给后台,后台参数必须使用@RequestBody 参数,

@RequestBody 实体,来接受;或者从request的输入流inputstream中拿去

httpclient 发送的就是把json参数 按照application/json 发送的,接收端要从request输入流中拿去

 

content-type 为二进制 时

只能传递文件,不能同时传递文件+字符串参数,这点还不如表单的第二种形式,后台从request中拿去就行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值