接着上次的内容 Requests.request() 方法分享【一】继续,这次主要讲post请求【编码格式为 form表单 + JSON格式】实际运用request()
个人博客:https://blog.csdn.net/zyooooxie
在发送post请求,提交数据的过程,服务器是根据请求头的Content-Type字段来获知请求中的消息主体是用何种方式来进行编码,再对消息主体来进行解析。其中编码格式主要有:
这是最常见的post请求提交数据的方式,以form表单形式。此类型要求参数传递样式为key1=value1&key2=value2
可以看看JMeter中 发送post请求的方式
在Requests库中,发送编码为表单形式的数据,只需要传递data参数,我们的数据字典会在发送请求时候自动编码为表单形式。
下面这条用例是增加一个请求头 headers={‘content-type’: ‘application/x-www-form-urlencoded’}
在JMater请求表单形式的参数时,是可以在Body Data里输入,在下图的用例data关键字实际传递字符串t_dict。
这种是以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