接着上次的内容继续,这次主要讲post请求【编码格式为 form表单 + JSON格式】实际运用request()
POST请求的实际运用
在发送post请求,提交数据的过程,服务器是根据请求头的Content-Type字段来获知请求中的消息主体是用何种方式来进行编码,再对消息主体来进行解析。其中编码格式主要有:
1. POST请求-application/x-www-form-urlencoded
这是最常见的post请求提交数据的方式,以form表单形式。此类型要求参数传递样式为key1=value1&key2=value2
在Requests库中,发送编码为表单形式的数据,只需要传递data参数,我们的数据字典会在发送请求时候自动编码为表单形式。
下面这条用例是增加一个请求头 headers={‘content-type’: ‘application/x-www-form-urlencoded’}
在JMater请求表单形式的参数时,是可以在Body Data里输入,在下图的用例data关键字实际传递字符串t_dict。
2. POST请求-application/json
这种是以json串来提交数据。此类型的参数样式就是json格式,例如{‘k1’:‘v1’,‘k2’:‘v2’}
可以看看之前关于JSON格式数据的传参
Python是没有json类型的,那我们实际在接口传递的数据是什么呢?
是字符串对象。
那么可以使用str()或者直接定义str来直接传递了吗?
必须提醒的 传递的数据是得满足JSON的格式
下面这条用例是增加一个请求头 headers={‘content-type’: ‘application/json’}
在实际请求该过程,需要传入的报文对象是JSON格式的,那还有其他方式来进行报文提交吗?
A. json.dumps() 把Python数据结构转换为JSON【将字典转化为字符串】
B.demjson.encode() 将 Python 对象编码成 JSON 字符串
C. 直接定义的字符串 里面的内容得满足JSON的格式
当然可以使用转义符 `str_new = “{“k5”:“v5”, “k6”:“v6”}”
D.替换新str的单引号为双引号 str(xxxx).replace('\'', '\"')
其实很简单的一件事,说这么多都是为了实现数据的转换。实际的工作中掌握一种就可以。
交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie