【实测】大白话讲requests发送请求的不同参数类型(下)

简介: 【实测】大白话讲requests发送请求的不同参数类型(下)

继续开始讲后面的参数类型:


六:raw



简介:就是个大字符串,只是你可以告诉后端如何来解析这个字符串,即请求头的Content-Type不同。


1- Text格式


举例:传输 【abcdefg】 几个字


requests代码:

import requests
url = "http://localhost:8000/test/"
payload = "abcdefg"
headers = {
  'Content-Type': 'text/plain'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)

接口详情:


640.png


2- Javascript格式

requests代码:只有headers不同


headers = {  'Content-Type': 'application/javascript'}


接口详情:

640.png


3- Json格式

requests代码:只有headers不同

headers = {  'Content-Type': 'application/json'}


接口详情:

640.png


4- HTML

requests代码:只有headers不同


headers = {  'Content-Type': 'text/html'}


接口详情640.png


5- XML

requests代码:只有headers不同

headers = {  'Content-Type': 'application/xml'}

接口详情

640.png


七:binary



简介:就是单独传一个文件,其他啥都不带。


举例:传个照片 1.png


requests代码:


import requests
url = "http://localhost:8000/test/"
payload=open('/xxx/xxx/1.png','rb')headers = {  'Content-Type': 'image/png'}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)


注意,contentType 需要根据文件实际类型变化来决定。有的同学会问了,那么多文件类型,难道要都写么?


其实,我们可以写好一份或者下载一份大全对比,然后通过一个第三方函数自动化识别和决定contentType的值即可。


而更多实际情况是,某个接口只能接收一种类型的文件,其他格式无效,比如头像上传,只接受png。这种情况,前端开发直接写死请求的content-type 为 image/png即可。


八:GraphQl



简介:一种特殊规则的接口api查询语句,你发送的其实就是个命令,本质上就是一个特殊规则的大字符串。(一般用于多个复杂查询整合成一条查询接口的集中式获取资源方法)有三个参数,第一个query 必填,第二个variables 选填。第三个operationName 选填(多操作必填) ,目前大多数同学接触不到这种请求。


requests代码:


import requestsimport json
url = "http://localhost:8000/test/"
query = ""variables = ""
payload="{\"query\":\"%s\",\"variables\":%s}"%(query,eval(variables))headers = {  'Content-Type': 'application/json'}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)


注意,variables是需要求值代入的。注意headers ,contentType的值都是application/json


接口详情:

640.png


好了,大概就说这么多,一般去做自动化或者接口测试平台的话,底层要是打算自己写,看这篇文档基本就够用了。


相关文章
|
8月前
|
安全 中间件
字节赫兹 框架教程 一请求上下文之请求(三)
字节赫兹 框架教程 一请求上下文之请求
87 0
|
4月前
|
网络安全 Python
请求模块requests:请求方式
请求模块requests(一)
54 9
|
6月前
|
JSON 数据格式
axios发送post请求,如何接受和返回一个axios的字段,解决bug的方法,困难的事情先从简单做起,先从发送一个axios的post请求做起,解决方法查别人的资料,查看F12看network就行
axios发送post请求,如何接受和返回一个axios的字段,解决bug的方法,困难的事情先从简单做起,先从发送一个axios的post请求做起,解决方法查别人的资料,查看F12看network就行
|
7月前
|
数据采集 JSON 数据建模
scrapy快加构造并发送请求
scrapy快加构造并发送请求
|
8月前
|
存储 安全 中间件
字节赫兹 框架教程 一请求上下文之请求(一)
字节赫兹 框架教程 一请求上下文之请求
71 0
|
8月前
字节赫兹 框架教程 一请求上下文之请求(二)
字节赫兹 框架教程 一请求上下文之请求
63 0
【C#编程最佳实践 二十二】如何发送带有重试机制的Http请求
【C#编程最佳实践 二十二】如何发送带有重试机制的Http请求
172 0
【C#编程最佳实践 二十二】如何发送带有重试机制的Http请求
|
XML Web App开发 JSON
800字带你弄懂Http请求和响应
800字带你弄懂Http请求和响应
224 0
|
存储 算法
【实测】大白话讲requests发送请求的不同参数类型(上)
【实测】大白话讲requests发送请求的不同参数类型(上)
|
Python
请求方式之二----requests模块
请求方式之二----requests模块
80 0