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

    xiaoxiao2023-11-01  156

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

    个人博客:https://blog.csdn.net/zyooooxie

    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

    最新回复(0)