formData和request Payload
Form Data
Post表单请求
代码示例
headers = {
"Content-Type": "application/x-www-form-urlencoded"
}
requests.post(url, data=data, headers=headers)
Request Payload
传递json数据
headers = {
"Content-Type": "application/json"
}
requests.post(url, data=json.dumps(data), headers=headers)
二者区别
如果一个请求的Content-Type设置为application/x-www-form-urlencoded,那么这个Post请求会被认为是Http Post表单请求,那么请求主体将以一个标准的键值对和&的querystring形式出现。这种方式是HTML表单的默认设置,所以在过去这种方式更加常见。
其他形式的POST请求,是放到 Request payload 中(现在是为了方便阅读,使用了Json这样的数据格式),请求的Content-Type设置为application/json;charset=UTF-8或者不指定。
在http的请求中,formData和request Payload常出现于POST请求中,比如正常的ajax post请求中:
$.ajax({
url:'/index',
type:'post',
dataType:'json',
data:{
name:'acc',
age:13
},
success:res => {
}
})
此时这个请求发出去后,它的content-type: application/x-www-form-urlencoded,而且这是一个默认参数,form表单的默认情况下,其enctype也是设置为此属性。在请求头的底部,你也可以看到发送的参数出现在FromData中。
如果我们把上面的代码改一下:
$.ajax({
url:'/index',
type:'post',
dataType:'json',
contentType: 'application/json',
data:{
name:'acc',
age:13
},
success:res => {
}
})
此时这个请求发出去后,它的content-type: application/json,在请求头的底部,你也可以看到发送的参数出现在Request Payload中。
除此之外,最近的新request Fetch API也能做到这一点。
var data = { 'name': 'pdd', 'password': 19 }
fetch('/post', {
method: 'post',
headers: new Headers({
'Content-Type': 'application/json'
}),
body: JSON.stringify(data)
}).then(res => res.text())
.then(res => {
console.log('post-data', res);
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2020-03-31 OSPF1
2020-03-31 路由聚合(路由发布时)
2020-03-31 RIP
2020-03-31 路由选择和静态路由
2020-03-31 传输介质和IP地址
2020-03-31 升级VRP
2020-03-31 文件系统