【实测】大白话讲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


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


相关文章
|
4月前
|
安全 中间件
字节赫兹 框架教程 一请求上下文之请求(三)
字节赫兹 框架教程 一请求上下文之请求
62 0
解决传入的请求具有过多的参数,该服务器支持最多 2100 个参数
解决传入的请求具有过多的参数,该服务器支持最多 2100 个参数
|
2月前
|
JSON 数据格式
axios发送post请求,如何接受和返回一个axios的字段,解决bug的方法,困难的事情先从简单做起,先从发送一个axios的post请求做起,解决方法查别人的资料,查看F12看network就行
axios发送post请求,如何接受和返回一个axios的字段,解决bug的方法,困难的事情先从简单做起,先从发送一个axios的post请求做起,解决方法查别人的资料,查看F12看network就行
|
3月前
|
数据采集 JSON 数据建模
scrapy快加构造并发送请求
scrapy快加构造并发送请求
|
4月前
|
数据采集 搜索推荐 API
python爬虫如何处理请求频率限制?
【2月更文挑战第21天】【2月更文挑战第64篇】python爬虫如何处理请求频率限制?
383 3
|
10月前
|
JSON Java 数据格式
万字长文讲解调用第三方接口,RestTemplate,urlConnection使用详解,java代码模拟postman发送请求
万字长文讲解调用第三方接口,RestTemplate,urlConnection使用详解,java代码模拟postman发送请求
105 0
万字长文讲解调用第三方接口,RestTemplate,urlConnection使用详解,java代码模拟postman发送请求
|
4月前
字节赫兹 框架教程 一请求上下文之请求(二)
字节赫兹 框架教程 一请求上下文之请求
53 0
|
4月前
|
存储 安全 中间件
字节赫兹 框架教程 一请求上下文之请求(一)
字节赫兹 框架教程 一请求上下文之请求
42 0
|
9月前
|
XML JSON JavaScript
JsonRPC协议详解(协议介绍、请求示例、响应示例)
RPC(远程过程调用)是一种用于实现分布式系统中不同进程或不同计算机之间通信的技术。它允许我们像调用本地函数一样调用远程计算机上的函数,使得分布式系统的开发变得更加简单和高效。 JsonRPC是一种基于JSON(JavaScript Object Notation)的轻量级远程过程调用协议。与其他RPC协议相比,JsonRPC使用简单的文本格式进行通信,易于阅读和编写,广泛应用于Web服务和分布式系统中。
639 0
【C#编程最佳实践 二十二】如何发送带有重试机制的Http请求
【C#编程最佳实践 二十二】如何发送带有重试机制的Http请求
135 0
【C#编程最佳实践 二十二】如何发送带有重试机制的Http请求