41 lines
1.1 KiB
Dart
41 lines
1.1 KiB
Dart
// 2026-04-11 | verify_recipe_images.dart | 菜谱图片URL验证 | 测试fallback链
|
|
import 'dart:io';
|
|
|
|
void main() async {
|
|
final client = HttpClient();
|
|
client.connectionTimeout = const Duration(seconds: 8);
|
|
|
|
final testIds = [1, 150, 1585];
|
|
final base = 'http://eat.wktyl.com/api/assets';
|
|
|
|
for (final id in testIds) {
|
|
print('\n--- Testing id=$id ---');
|
|
final urls = [
|
|
'$base/pic/${id}a.jpg',
|
|
'$base/pic/${id}b.jpg',
|
|
'$base/pic/$id.jpg',
|
|
];
|
|
|
|
for (final url in urls) {
|
|
try {
|
|
final req = await client.headUrl(Uri.parse(url));
|
|
final resp = await req.close();
|
|
print(' ${resp.statusCode == 200 ? "✅" : "❌"} $url → ${resp.statusCode}');
|
|
} catch (e) {
|
|
print(' ❌ $url → error: $e');
|
|
}
|
|
}
|
|
}
|
|
|
|
// Test back.png
|
|
try {
|
|
final req = await client.headUrl(Uri.parse('$base/back.png'));
|
|
final resp = await req.close();
|
|
print('\n${resp.statusCode == 200 ? "✅" : "❌"} $base/back.png → ${resp.statusCode}');
|
|
} catch (e) {
|
|
print('\n❌ back.png → error: $e');
|
|
}
|
|
|
|
client.close();
|
|
}
|