python requests.post 请求返回415的一个问题

本文讲述了在使用requests库发送POST请求时遇到的问题,重点在于Content-Type的设置。错误地设置为data参数导致请求失败,正确设置为json参数并指定'Content-Type':'application/json'后,请求成功。同时,文章还介绍了不同情况下Content-Type的默认值及其对后端解析数据的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:练习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的形式,则需要去分割字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值