#!/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()