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?