iTunes 搜索 API - HTTPS artUrl?

Posted

技术标签:

【中文标题】iTunes 搜索 API - HTTPS artUrl?【英文标题】:iTunes Search API - HTTPS artworkUrl? 【发布时间】:2013-03-01 02:48:37 【问题描述】:

当我通过 SSL 对 iTunes 搜索 API 运行查询时,返回的大部分 URL 都是通过 HTTPS 提供的:

https://itunes.apple.com/search?term=rihanna

但是,artifactUrl 结果是通过 HTTP 提供的,并且手动更新它们会引发错误,因为 SSL 证书与它们使用的域不匹配。

有没有办法通过 HTTPS 而不是 HTTP 来获取这些图像?

【问题讨论】:

【参考方案1】:

你必须替换子域:

http://is<n> with https://is<n>-ssl

例子:

http://is5.mzstatic.com/image/thumb/Music117/v4/dd/48/4a/dd484afb-2313-0a1a-ccf1-ff28a02ae2ca/source/100x100bb.jpg

https://is5-ssl.mzstatic.com/image/thumb/Music117/v4/dd/48/4a/dd484afb-2313-0a1a-ccf1-ff28a02ae2ca/source/100x100bb.jpg

【讨论】:

【参考方案2】:

iTunes 不支持通过 HTTPS 进行专辑封面或歌曲预览(目前)。

工具和 HTTPS 链接的更改是最近才发生的(仅在四个月前): http://www.apple.com/itunes/affiliates/resources/blog/secure-links-to-itunes---content-and-tools.html

【讨论】:

这个答案被接受已经好几年了——有什么变化吗? 看起来不像。我来到这里试图找到 https 链接以在带有 ATP 的应用程序中使用。【参考方案3】:

SO 和 Swift 的新手 - 偶然发现了这个问题,直到找到这个 Q 和上面的答案。以下对我有用:

func withHTTPS() -> URL? 
  var components = URLComponents(url: self, resolvingAgainstBaseURL: true)
  components?.scheme = "https"
  let host = (components?.host)!
  components?.host = host.replacingOccurrences(of: ".", with: "-ssl.", options: .caseInsensitive, range: host.range(of: "."))
  return components?.url

调用使用:

guard let url = item.artworkURL.withHTTPS() else  return 

【讨论】:

以上是关于iTunes 搜索 API - HTTPS artUrl?的主要内容,如果未能解决你的问题,请参考以下文章

从 iTunes 搜索 API(Apple 音乐)获取 ISRC 代码

使用 RESTKit 映射 iTunes 搜索 API 结果

是否还有办法在 iTunes Store 而不是 Apple Music 中打开 iTunes 搜索 API trackViewUrl?

如何在 javascript 中查询 iTunes 搜索 API?

iTunes Search API 返回额外的错误结果

iTunes 查找 API 在我的 APP 中返回旧数据