背景:练习requests 请求的时候向一个网站发起post请求,携带的参数为

我已经添加了头部和数据但是返回是这样的

这是因为我在写requests.post(url=url,data=data,headers=headers)这里写错了。
应该是:
response = requests.post(url=url, json=data,headers=headers)
因为要注意的是:
'Content - Type': 'application / json',

于是最后请求成功。
Content-Type知识补充
1.传统的ajax请求时候,Content-Type默认为"文本"类型。
2.传统的form提交的时候,Content-Type默认为"Form"类型。
3.axios传递字符串的时候,Content-Type默认为"Form"类型。
4.axios传递对象的时候,Content-Type默认为"JSON"类型
Content-Type的值,Form与非Form时,payload的区别。
1.都只支持字符串类型(以上探究的几种情况)
2.Form需要传递的格式为key1=value1&key2=value2,类似GET请求的QueryString格式
3.非Form一般为JSON.stringify(formDataObject)形式
后端取不到值?
无论何种形式传递,后端解析表单信息的时候,会考虑Content-Type。如果是JSON字符串的话,后端解析payload的内容时候,肯定要去解析JSON啦。如果是key1=value1&key2=value2的形式,则需要去分割字符串。
本文讲述了在使用requests库发送POST请求时遇到的问题,重点在于Content-Type的设置。错误地设置为data参数导致请求失败,正确设置为json参数并指定'Content-Type':'application/json'后,请求成功。同时,文章还介绍了不同情况下Content-Type的默认值及其对后端解析数据的影响。
2672

被折叠的 条评论
为什么被折叠?



