Ai_GirlFriend/test_outfit_api.py

116 lines
3.6 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
测试换装 API 返回的图片 URL
"""
import requests
import json
# API 地址
API_URL = "http://192.168.1.164:30101/outfit/mall"
# 测试 token需要替换为实际的 token
# 如果没有 token可以使用 X-User-Id 调试
headers = {
"X-User-Id": "70" # 使用调试用户 ID
}
print("=" * 70)
print(" 测试换装商城 API")
print("=" * 70)
print()
print(f"API 地址: {API_URL}")
print(f"请求头: {headers}")
print()
try:
response = requests.get(API_URL, headers=headers, timeout=10)
print(f"状态码: {response.status_code}")
print()
if response.status_code == 200:
data = response.json()
print("=" * 70)
print(" API 响应")
print("=" * 70)
print()
print(f"Code: {data.get('code')}")
print(f"Message: {data.get('msg')}")
print()
if data.get('code') == 1 and 'data' in data:
outfit_data = data['data']
items = outfit_data.get('items', [])
print(f"服装数量: {len(items)}")
print(f"已拥有: {len(outfit_data.get('owned_outfit_ids', []))}")
print(f"金币余额: {outfit_data.get('balance', 0)}")
print()
if items:
print("=" * 70)
print(" 前 5 件服装")
print("=" * 70)
print()
for idx, item in enumerate(items[:5], 1):
print(f"[{idx}] {item.get('name')}")
print(f" 分类: {item.get('category')}")
print(f" 性别: {item.get('gender')}")
print(f" 价格: {item.get('price_gold')} 金币")
print(f" 图片: {item.get('image_url')}")
print()
# 测试图片 URL 是否可访问
img_url = item.get('image_url')
if img_url:
try:
img_response = requests.head(img_url, timeout=5)
if img_response.status_code == 200:
print(f" ✓ 图片可访问")
else:
print(f" ✗ 图片无法访问 (状态码: {img_response.status_code})")
except Exception as e:
print(f" ✗ 图片访问失败: {e}")
print()
else:
print("⚠️ 没有找到服装数据")
print()
print("可能的原因:")
print("1. 数据库中没有数据")
print("2. 查询条件不匹配(性别、状态等)")
print()
else:
print(f"❌ API 返回错误: {data.get('msg')}")
print()
else:
print(f"❌ HTTP 错误: {response.status_code}")
print(f"响应内容: {response.text[:500]}")
print()
except requests.exceptions.Timeout:
print("❌ 请求超时")
print()
print("请检查:")
print("1. Python 服务是否运行")
print("2. 端口 30101 是否正确")
print()
except requests.exceptions.ConnectionError:
print("❌ 连接失败")
print()
print("请检查:")
print("1. Python 服务是否运行")
print("2. 地址是否正确: http://192.168.1.164:30101")
print()
except Exception as e:
print(f"❌ 发生错误: {e}")
print()
import traceback
traceback.print_exc()
print("=" * 70)
print(" 测试完成")
print("=" * 70)