python的post请求中加参数_四种常见的post请求中的参数形
式
哪里下载视频素材post请求中的参数形式
⼀、初识post请求实例
1、Angular的ajax功能
AngularJs的ajax的post请求参数就是提交的json字符串。如:
var data = {'name':'jack'};
$http.post(url,data).success(function(rsp){
// code
})
2、application/json
JSON.stringify()的⽅法,服务端也有处理JSON的函数。
//请求的参数要处理:
JSON.stringify({name:'jack'})
⼆、四种常见的post请求⽅式:
1、背景
注:enctype 属性规定在发送到服务器之前应该如何对表单数据进⾏编码。默认地,表单数据会编码为 "application/x-www-form-urlencoded"
(1)、HTTP 协议是以 ASCII 码 传输,建⽴在 TCP/IP 协议之上的应⽤层规范。规范把 HTTP 请求分为三个部分:状态⾏、请求头、消息主体。
(2)、协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须 使⽤什么编码⽅式 。实际上,开发者完全可以⾃⼰决定消息主体的格式,只要最后发送的 HTTP 请求满⾜上⾯的格式就可以。
beginthread和createthread
(3)、数据发送出去,还要服务端解析成功才有意义。⼀般服务端语⾔如 php、python 等,以及它们的 framework,都内置了⾃动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是⽤何种⽅式编码,再对主体进⾏解析。
2、开始介绍四种⽅式:
(1)、application/x-www-form-urlencoded
这应该是最常见的 POST 提交数据的⽅式了。浏览器的原⽣
表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded ⽅式提交数据。
First name:
Last name:
此时可以看到,python请求并解析json数据
Content-Type: application/x-www-form-urlencoded;charset=utf-8
title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3
⾸先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的⽅式进⾏编码,key 和 val 都进⾏了 URL 转码。⼤部分服务端语⾔都对这种⽅式很好的⽀持,常⽤的如jQuery中的ajax请求,Content-Type 默认值都是「application/x-www-form-urlencoded;charset=utf-8
(2)、multipart/form-data
这也是常见的post请求⽅式,⼀般⽤来上传⽂件,各⼤服务器的⽀持也⽐较好。所以我们使⽤表单 上传⽂件 时,必须让
表单的enctype属性值为 multipart/form-data.
注意:以上两种⽅式:application/x-www-form-urlencoded和multipart/form-data都是浏览器原⽣⽀持的。
(3)、application/json
application/json作为响应头并不陌⽣,实际上,现在很多时候也把它作为请求头,⽤来告诉服务端消
51cto息主体是序列化的JSON字符串,除了低版本的IE,基本都⽀持。除了低版本的IE都⽀持JSON.stringify()的⽅法,服务端也有处理JSON的函数,使⽤json不会有任何⿇烦。例如:
//请求数据
var data = {name:'jack',sex:'man'};
//请求数据序列化处理
JSON.stingify(data);
//结果:{'name':'jack','sex':'man'};
(4)、text/xml
三、postman中post请求的form-data、x-www-form-urlencoded、raw、binary的区别
单相电机的工作原理1、form-data:
等价于http请求中的multipart/form-data,它会将表单的数据处理为⼀条消息,以标签为单元,⽤分隔符分开。既可以上传键值对,也可以上传⽂件。当上传的字段是⽂件时,会有Content-Type来表名⽂
件类型;content-disposition,⽤来说明字段的⼀些信息;
由于有boundary隔离,所以multipart/form-data既可以上传⽂件,也可以上传键值对,它采⽤了键值对的⽅式,所以可以上传多个⽂件。
2、x-www-form-urlencoded:
等价于application/x-www-from-urlencoded,会将表单内的数据转换为键值对,⽐如,name=java&age = 23
3、raw
python怎么读取utf可以上传任意格式的⽂本,可以上传text、json、xml、html等
4、binary
相当于Content-Type:application/octet-stream,从字⾯意思得知,只可以上传⼆进制数据,通常⽤来上传⽂件,由于没有键值,所以,⼀次只能上传⼀个⽂件。
multipart/form-data与x-www-form-urlencoded区别
multipart/form-data:既可以上传⽂件等⼆进制数据,也可以上传表单键值对,只是最后会转化为⼀条信息;
x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论