Postman中常见的POST提交数据的方式:
from-data,raw,x-www-from-urlencoded,binary的区别:
1. from-data:将表单的数据处理为一条消息,以标签为单元,用分隔符分开。这种方式可以传递键值对,也可以传递文件。
PostMan post 表单 data点击code,并选择Python Request,能看到对应的python code。首先生成了一个 boundary 用于分割不同的字段,为了避免与正文内容重复,boundary 很长很复杂。然后 Content-Type 里指明了数据是以 multipart/form-data 来编码,本次请求的 boundary 是什么内容。消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以 --boundary 开始,紧接着是内容描述信息,然后是回车,最后是字段具体内容。如果传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 --boundary-- 标示结束。
post form-data python code使用django搭建的后台服务,表单的方式传递参数,可以通过request.POST.dict()来直接获取参数:
打印request的form-data参数 查看request的form-data参数2. raw:可以使用raw数据类型可以提交任意格式的数据,还可以通过下拉框选择不同的格式(text, Javascript,Json,HTML,XML),postmen会有格式检查提示,并且自动添加heade信息。
PostMan Post raw data点击code,并选择Python Request,能看到对应的python code:
python code也可以在发送的数据中使用变量,postman可以使用变量当前值来发送request。
在raw data中使用变量名在服务端request的参数只能通过request.body获取到,request.body是一个字符串,需要通过json.load()将其转换为一个dict,从而进行下一步的处理。
打印request参数 参看request参数3.x-www-from-urlencoded:浏览器的原生表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。首先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。
python code4. Binary:只可以上传二进制文件,通常用于上传文件(图片,音频,视频,文本文件都可以)。因为没有键值,所以一次只能上传一个文件:
PostMan post binary datamultipart/form-data与x-www-form-urlencoded区别
multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的;
网友评论