Прямо сейчас это выглядит как загадка. Пожалуйста, помогите мне в ее решении.
Я использую общедоступный API iTunes для извлечения альбома: «Metallica» от Metallica (см. Его в браузере: US регион, MV регион). Я создаю следующие URL, чтобы получить его через API:
- регион США https://itunes.apple.com/lookup?id=579372950&country=US&entity=album - работает
- MV регион https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album - не работает
Вот фактическое поведение, которое я наблюдаю:
Если я запрашиваю GET https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album
в приложении Spring (используя RestTemplate
+ Джексон HttpMessageConverter
), я получаю пустой ответ:
{
"resultCount":0,
"results": []
}
Если в браузере перейти к https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album, я получу приглашение на загрузку файла. Файл содержит пустой ответ:
{
"resultCount":0,
"results": []
}
Если я запрашиваю API, используя HttpPie http get https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album
, я получаю непустой ответ !!!
{
"resultCount": 1,
"results": [
{
"amgArtistId": 4906,
"artistId": 3996865,
"artistName": "Metallica",
"artistViewUrl": "https://music.apple.com/us/artist/metallica/3996865?uo=4",
"artworkUrl100": "https://is1-ssl.mzstatic.com/image/thumb/Music/v4/0b/9c/d2/0b9cd2e7-6e76-8912-0357-14780cc2616a/source/100x100bb.jpg",
"artworkUrl60": "https://is1-ssl.mzstatic.com/image/thumb/Music/v4/0b/9c/d2/0b9cd2e7-6e76-8912-0357-14780cc2616a/source/60x60bb.jpg",
"collectionCensoredName": "Metallica",
"collectionExplicitness": "notExplicit",
"collectionId": 579372950,
"collectionName": "Metallica",
"collectionPrice": 9.99,
"collectionType": "Album",
"collectionViewUrl": "https://music.apple.com/us/album/metallica/579372950?uo=4",
"copyright": "℗ 1991 Blackened Recordings",
"country": "USA",
"currency": "USD",
"primaryGenreName": "Metal",
"releaseDate": "1991-08-12T07:00:00Z",
"trackCount": 13,
"wrapperType": "collection"
}
]
}
Я пробовал это несколько раз, и результаты, кажется, согласуются. Я сравнил запросы, и они кажутся идентичными.
Почему iTunes по-разному реагирует на разные клиенты? Я не могу понять Какую важную деталь я упускаю?
Похожие вопросы:
- Spring RestTemplate getForObject URL не работает для Apple iTunes - есть еще одна проблема (двойное кодирование символа пробела).
Эта проблема возникает в следующих регионах (это полный список):