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