@[toc]python
概要 调用http请求post类型
提示:python语言 request库
整体调用流程
本人小白,话不多说,准备好python环境,我用的是python3.12版本。先导入一般常用库如json、requests,如果传参中含有时间,还需要导入datetime、random等。
例如,以下是我本次用到的库:
import datetime
import json
import random
import requests
然后,定义请求的 URL及头部信息
# 定义请求的 URL
url = "http://127.0.0.0:80/egh/skrg/wehyg/" # 此处为需要调用的接口
# 定义头部信息
headers = {
"Content-Type": "application/json",
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "keep-alive"
}
定义循环,假设循环100次
# 定义循环次数
num_records = 100
# 循环生成数据并插入
for i in range(num_records):
# 生成随机年月日时分秒
def generate_random_datetime():
# 随机生成年
year = random.randint(1900, 2024)
# 随机生成月
month = random.randint(1, 12)
# 随机生成日
day = random.randint(1, 28)
# 随机生成时
hour = random.randint(0, 23)
# 随机生成分
minute = random.randint(0, 59)
# 随机生成秒
second = random.randint(0, 59)
# 创建 datetime 对象
random_datetime = datetime.datetime(year, month, day, hour, minute, second)
return random_datetime
# 生成随机 datetime并格式化为json对象
random_datetime = generate_random_datetime()
random_datetime1 = random_datetime.strftime("%Y-%m-%d %H:%M:%S")
这里为传输的数据
# 定义要传输的 JSON 数据
message = {
"key1":
{
"key1.1": "value1.1",
"key1.2": "value1.2",
},
"key2":
{
"key2.1": "value2.1",
"key2.2": "value2.2",
}
}
# 发送 POST 请求
response = requests.post(url, headers=headers, data=json.dumps(message))
添加断言
# 检查响应状态
if response.status_code == 200:
# 成功响应时,打印出响应内容,及发送的信息
print("请求成功!", response.text, message)
else:
# 响应失败时
print("请求失败!", response.status_code, response.text)
下面贴上完整的代码
import datetime
import json
import random
import requests
# 定义请求的 URL
url = "http://127.0.0.0:80/egh/skrg/wehyg/" # 此处为需要调用的接口
# 定义头部信息(根据接口的实际头部需求写)
headers = {
"Content-Type": "application/json",
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "keep-alive"
}
# 定义循环次数
num_records = 100
# 循环生成数据并插入
for i in range(num_records):
# 生成随机年月日时分秒,(因为本次我调用的接口中有时间字段,需要随机,不需要的可以不看这一段)
def generate_random_datetime():
# 随机生成年
year = random.randint(1900, 2024)
# 随机生成月
month = random.randint(1, 12)
# 随机生成日
day = random.randint(1, 28)
# 随机生成时
hour = random.randint(0, 23)
# 随机生成分
minute = random.randint(0, 59)
# 随机生成秒
second = random.randint(0, 59)
# 创建 datetime 对象
random_datetime = datetime.datetime(year, month, day, hour, minute, second)
return random_datetime
# 生成随机 datetime并格式化为json对象
random_datetime = generate_random_datetime()
random_datetime1 = random_datetime.strftime("%Y-%m-%d %H:%M:%S")
# 定义要传输的 JSON 数据
message = {
"key1":
{
"key1.1": "value1.1",
"key1.2": "value1.2"
},
"key2":
{
"key2.1": "value2.1",
"key2.2": "value2.2"
}
}
# 发送 POST 请求
response = requests.post(url, headers=headers, data=json.dumps(message))
# 检查响应状态
if response.status_code == 200:
# 成功响应时,打印出响应内容,及发送的信息
print("请求成功!", response.text, message)
else:
# 响应失败时
print("请求失败!", response.status_code, response.text)
小结
接口自动化小白,后续会继续更新工作中遇到的其他内容,欢迎大家来指导。