python request要求接口参数必须是json数据

Posted Jason_WangYing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python request要求接口参数必须是json数据相关的知识,希望对你有一定的参考价值。

Reqeusts支持以form表单形式发送post请求,只需要将请求的参数构造成一个字典,然后传给requests.post()的data参数即可。

data参数的格式如下:(content-type在header中设置)

1、data为dict时,如果不指定content-type,默认为application/x-www-form-urlencoded,相当于普通form表单提交的形式
2、data为str时,如果不指定content-type,默认为text/plain
3、json为dict时,如果不指定content-type,默认为application/json
4、json为str时,如果不指定content-type,默认为application/json

额外说下

application/x-www-form-urlencoded  form表单,会对数据进行unicode编码,在发送前编码所有字符(默认)

multipart/form-data    不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

text/plain 文本形式 ,空格转换为 “+” 加号,但不对特殊字符编码。

application/json 作为请求头告诉服务端消息主体是序列化的JSON字符串。除低版本的IE,基本都支持

所以如果想提交json数据,可以使用如下方式

使用headers声明下,我这个数据是需要进行json解析的
post_headers = 'Content-Type': 'application/json'
res = requests.post(url, headers=post_headers, data=json.dumps(data), verify=False)
也可以时间用json来传递
res = requests.post(url, json=data, verify=False)

 

以上是关于python request要求接口参数必须是json数据的主要内容,如果未能解决你的问题,请参考以下文章

python+requests接口自动化3. 接口<参数>的关联与cookie提取

python+pytest接口自动化框架-requests发送post请求

python+pytest接口自动化框架-requests发送post请求

python接口自动化测试-request模块

自动化接口测试平台:从excel读取数据,传递到request请求中获取不到参数问题

Python+request 分模块存放接口,多接口共用参数URLheaders的抽离,添加日志打印等《三》