现在看起来像是一个谜。请帮助我解决问题。
我使用iTunes公共API来获取Metallica的相册:“ Metallica”(在浏览器的US区,MV区中查看)。我构造了以下URL以通过API进行获取:
这是我观察到的实际行为:
如果我在Spring应用程序中使用GET https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album
+ Jackson RestTemplate
查询HttpMessageConverter
,则会得到一个空响应:
{
"resultCount":0,
"results": []
}
如果我在浏览器中导航到https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album,则会收到文件下载提示。该文件包含空响应:
{
"resultCount":0,
"results": []
}
如果我使用HttpPie http get https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album
查询API,则会收到非空响应!!!
{
"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对不同客户端的反应不同?我听不懂我缺少什么重要的细节?
类似的问题:
此问题发生在以下地区(完整列表):
答案 0 :(得分:0)
我发现了一个不同之处:
http get 'https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album'
->空响应 curl 'https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album'
->空响应
http get https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album
->响应中有1张专辑
curl https://itunes.apple.com/lookup?id=579372950&country=MV&entity=album
-> 1张专辑作为回应如果我不在URL周围使用引号,则该请求将被解释为GET https://itunes.apple.com/lookup?id=579372950
。默认国家/地区是美国,因此我会看到1张美国专辑。