123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #!/bin/bash
- # HTTP服务器测试脚本
- BASE_URL="http://localhost:8080"
- echo "=========================================="
- echo "RTSP视频流管理HTTP服务器 API测试"
- echo "=========================================="
- echo ""
- # 颜色定义
- GREEN='\033[0;32m'
- RED='\033[0;31m'
- YELLOW='\033[1;33m'
- NC='\033[0m' # No Color
- # 测试函数
- test_api() {
- local method=$1
- local endpoint=$2
- local description=$3
-
- echo -e "${YELLOW}测试: ${description}${NC}"
- echo "请求: ${method} ${endpoint}"
- echo "响应:"
-
- if [ "$method" == "GET" ]; then
- curl -s -w "\nHTTP状态码: %{http_code}\n" "${BASE_URL}${endpoint}" | jq . 2>/dev/null || curl -s -w "\nHTTP状态码: %{http_code}\n" "${BASE_URL}${endpoint}"
- elif [ "$method" == "DELETE" ]; then
- curl -s -X DELETE -w "\nHTTP状态码: %{http_code}\n" "${BASE_URL}${endpoint}" | jq . 2>/dev/null || curl -s -X DELETE -w "\nHTTP状态码: %{http_code}\n" "${BASE_URL}${endpoint}"
- fi
-
- echo ""
- echo "----------------------------------------"
- echo ""
- }
- # 检查服务器是否运行
- echo "检查服务器状态..."
- if ! curl -s "${BASE_URL}/api/timestamps" > /dev/null 2>&1; then
- echo -e "${RED}错误: HTTP服务器未运行或无法连接${NC}"
- echo "请先启动服务器: ./cmake-build-debug/jtjai_http_server"
- exit 1
- fi
- echo -e "${GREEN}服务器已就绪${NC}"
- echo ""
- # 1. 列出所有时间戳目录
- test_api "GET" "/api/timestamps" "列出所有时间戳目录"
- # 2. 列出所有视频
- test_api "GET" "/api/videos" "列出所有视频"
- # 3. 列出指定时间戳的视频(需要根据实际情况修改)
- # 先获取第一个时间戳
- FIRST_TIMESTAMP=$(curl -s "${BASE_URL}/api/timestamps" | jq -r '.timestamps[0].timestamp' 2>/dev/null)
- if [ ! -z "$FIRST_TIMESTAMP" ] && [ "$FIRST_TIMESTAMP" != "null" ]; then
- echo -e "${YELLOW}找到时间戳: ${FIRST_TIMESTAMP}${NC}"
- test_api "GET" "/api/videos/${FIRST_TIMESTAMP}" "列出时间戳 ${FIRST_TIMESTAMP} 的视频"
- test_api "GET" "/api/videos?timestamp=${FIRST_TIMESTAMP}" "列出时间戳 ${FIRST_TIMESTAMP} 的视频(查询参数方式)"
- fi
- echo ""
- echo -e "${GREEN}测试完成!${NC}"
- echo ""
- echo "删除操作测试(注释掉以避免误删):"
- echo "# 删除单个视频:"
- echo "# curl -X DELETE \"${BASE_URL}/api/video?path=./output/TIMESTAMP/filename.mp4\""
- echo ""
- echo "# 删除整个时间戳目录:"
- echo "# curl -X DELETE \"${BASE_URL}/api/timestamp/TIMESTAMP\""
- echo ""
|