继续开始讲后面的参数类型:
六: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)
接口详情:
2- Javascript格式
requests代码:只有headers不同
headers = { 'Content-Type': 'application/javascript'}
接口详情:
3- Json格式
requests代码:只有headers不同
headers = { 'Content-Type': 'application/json'}
接口详情:
4- HTML
requests代码:只有headers不同
headers = { 'Content-Type': 'text/html'}
接口详情
5- XML
requests代码:只有headers不同
headers = { 'Content-Type': 'application/xml'}
接口详情
七: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
接口详情:
好了,大概就说这么多,一般去做自动化或者接口测试平台的话,底层要是打算自己写,看这篇文档基本就够用了。