gongxiangp2/scripts/test-external-api.ps1

103 lines
4.4 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 测试外部接口(模拟任务平台调用)
param(
[string]$Target = "shadow", # shadow 或 production
[string]$TaskNo = "", # 任务号
[string]$ApiKey = "" # API Key
)
# 设置目标URL
$baseUrl = if ($Target -eq "shadow") {
"http://192.168.58.20:5320"
} else {
"http://192.168.58.20:4320"
}
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "测试外部接口 - $Target 环境" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
# 验证参数
if (-not $TaskNo) {
Write-Host "错误:请提供任务号" -ForegroundColor Red
Write-Host "用法:.\test-external-api.ps1 -TaskNo TASK202601030184 -ApiKey your-api-key" -ForegroundColor Yellow
exit 1
}
if (-not $ApiKey) {
Write-Host "错误:请提供 API Key" -ForegroundColor Red
Write-Host "用法:.\test-external-api.ps1 -TaskNo TASK202601030184 -ApiKey your-api-key" -ForegroundColor Yellow
exit 1
}
# 步骤1:查询素材
Write-Host "步骤1:查询素材信息..." -ForegroundColor Green
$queryUrl = "$baseUrl/api/external/product-assets?taskNo=$TaskNo"
Write-Host "URL: $queryUrl" -ForegroundColor Gray
try {
$headers = @{
"X-API-Key" = $ApiKey
}
$response = Invoke-RestMethod -Uri $queryUrl -Method Get -Headers $headers -ContentType "application/json"
Write-Host "✅ 查询成功" -ForegroundColor Green
Write-Host ""
Write-Host "素材信息:" -ForegroundColor Cyan
Write-Host " 任务号: $($response.data.taskNo)" -ForegroundColor White
Write-Host " SPU型号: $($response.data.productModel)" -ForegroundColor White
Write-Host " 店铺: $($response.data.categoryName)" -ForegroundColor White
Write-Host " 场景: $($response.data.sceneName)" -ForegroundColor White
Write-Host ""
Write-Host "资产统计:" -ForegroundColor Cyan
Write-Host " 主图: $($response.data.assets.main.Count) 张" -ForegroundColor White
Write-Host " SKU图: $($response.data.assets.sku.Count) 张" -ForegroundColor White
Write-Host " 详情图: $($response.data.assets.detail.Count) 张" -ForegroundColor White
Write-Host " PSD: $($response.data.assets.psd.Count) 个" -ForegroundColor White
Write-Host ""
Write-Host "下载链接:" -ForegroundColor Cyan
Write-Host " 全部下载: $($response.data.downloadUrls.all)" -ForegroundColor White
Write-Host " 主图下载: $($response.data.downloadUrls.main)" -ForegroundColor White
Write-Host " SKU图下载: $($response.data.downloadUrls.sku)" -ForegroundColor White
Write-Host " 详情图下载: $($response.data.downloadUrls.detail)" -ForegroundColor White
if ($response.data.downloadUrls.psd) {
Write-Host " PSD下载: $($response.data.downloadUrls.psd)" -ForegroundColor White
}
Write-Host ""
# 步骤2:测试下载链接
Write-Host "步骤2:测试下载链接(全部下载)..." -ForegroundColor Green
$downloadUrl = $response.data.downloadUrls.all
Write-Host "URL: $downloadUrl" -ForegroundColor Gray
# 只测试HEAD请求,不实际下载
try {
$headResponse = Invoke-WebRequest -Uri $downloadUrl -Method Head -UseBasicParsing
Write-Host "✅ 下载链接有效" -ForegroundColor Green
Write-Host " Content-Type: $($headResponse.Headers['Content-Type'])" -ForegroundColor White
Write-Host " Content-Length: $([math]::Round($headResponse.Headers['Content-Length'] / 1024 / 1024, 2)) MB" -ForegroundColor White
Write-Host " Content-Disposition: $($headResponse.Headers['Content-Disposition'])" -ForegroundColor White
} catch {
Write-Host "❌ 下载链接测试失败" -ForegroundColor Red
Write-Host " 错误: $($_.Exception.Message)" -ForegroundColor Red
}
} catch {
Write-Host "❌ 查询失败" -ForegroundColor Red
Write-Host " 错误: $($_.Exception.Message)" -ForegroundColor Red
if ($_.Exception.Response) {
$reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream())
$responseBody = $reader.ReadToEnd()
Write-Host " 响应: $responseBody" -ForegroundColor Red
}
exit 1
}
Write-Host ""
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "测试完成" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan