99 lines
3.0 KiB
Python
99 lines
3.0 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
修复后的账号创建API调试脚本
|
|
"""
|
|
|
|
import requests
|
|
import json
|
|
|
|
# API基础URL
|
|
BASE_URL = "http://127.0.0.1:5000/api/v1"
|
|
|
|
def debug_create_admin():
|
|
"""调试创建管理员账号"""
|
|
# 创建会话
|
|
session = requests.Session()
|
|
|
|
# 先登录 - 设置正确的请求头
|
|
print("正在登录...")
|
|
login_data = {
|
|
"username": "admin",
|
|
"password": "admin123"
|
|
}
|
|
|
|
# 设置AJAX请求头
|
|
login_headers = {
|
|
"X-Requested-With": "XMLHttpRequest"
|
|
}
|
|
|
|
login_response = session.post("http://127.0.0.1:5000/login", data=login_data, headers=login_headers)
|
|
print(f"登录响应状态码: {login_response.status_code}")
|
|
print(f"登录响应内容: {login_response.text}")
|
|
|
|
if login_response.status_code != 200:
|
|
print("登录失败,无法继续测试")
|
|
return
|
|
|
|
try:
|
|
login_json = login_response.json()
|
|
if not login_json.get('success'):
|
|
print("登录返回失败状态")
|
|
return
|
|
print("登录成功!")
|
|
except:
|
|
print("登录响应不是有效的JSON格式")
|
|
return
|
|
|
|
# 测试获取管理员列表(验证认证是否成功)
|
|
print("\n测试获取管理员列表...")
|
|
admins_response = session.get(f"{BASE_URL}/admins")
|
|
print(f"获取管理员列表状态码: {admins_response.status_code}")
|
|
if admins_response.status_code == 200:
|
|
try:
|
|
admins_data = admins_response.json()
|
|
print(f"获取管理员列表成功: {json.dumps(admins_data, indent=2, ensure_ascii=False)}")
|
|
except:
|
|
print(f"获取管理员列表响应内容: {admins_response.text}")
|
|
else:
|
|
print(f"获取管理员列表失败,响应内容: {admins_response.text}")
|
|
|
|
# 测试创建管理员
|
|
print("\n测试创建管理员...")
|
|
url = f"{BASE_URL}/admins"
|
|
|
|
# 测试数据
|
|
data = {
|
|
"username": "fixed_debug_test_user",
|
|
"email": "fixed_debug_test_user@example.com",
|
|
"password": "FixedDebugPass123!",
|
|
"role": 0,
|
|
"status": 1
|
|
}
|
|
|
|
headers = {
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
print(f"发送POST请求到: {url}")
|
|
print(f"请求数据: {json.dumps(data, indent=2, ensure_ascii=False)}")
|
|
|
|
try:
|
|
response = session.post(url, json=data, headers=headers)
|
|
print(f"响应状态码: {response.status_code}")
|
|
print(f"响应头: {dict(response.headers)}")
|
|
|
|
if response.content:
|
|
try:
|
|
response_data = response.json()
|
|
print(f"响应JSON: {json.dumps(response_data, indent=2, ensure_ascii=False)}")
|
|
except json.JSONDecodeError:
|
|
print(f"响应文本: {response.text}")
|
|
else:
|
|
print("响应为空")
|
|
|
|
except requests.exceptions.RequestException as e:
|
|
print(f"请求失败: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
debug_create_admin() |