Requests.request()方法分享【二】

接着上次的内容继续,这次主要讲post请求【编码格式为 form表单 + JSON格式】实际运用request()

POST请求的实际运用

在发送post请求,提交数据的过程,服务器是根据请求头的Content-Type字段来获知请求中的消息主体是用何种方式来进行编码,再对消息主体来进行解析。其中编码格式主要有:

1. POST请求-application/x-www-form-urlencoded

这是最常见的post请求提交数据的方式,以form表单形式。此类型要求参数传递样式为key1=value1&key2=value2

可以看看JMeter中 发送post请求的方式

在这里插入图片描述
在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

发布了78 篇原创文章 · 获赞 24 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/90548655