当我通过 SSL 对 iTunes Search API 运行查询时,返回的大部分 URL 都是通过 HTTPS 提供的:
https://itunes.apple.com/search?term=rihanna
但是,artifactUrl 结果是通过 HTTP 提供的,手动更新它们会引发错误,因为 SSL 证书与它们使用的域不匹配。
有没有办法通过 HTTPS 而不是 HTTP 来获取这些图像?
当我通过 SSL 对 iTunes Search API 运行查询时,返回的大部分 URL 都是通过 HTTPS 提供的:
https://itunes.apple.com/search?term=rihanna
但是,artifactUrl 结果是通过 HTTP 提供的,手动更新它们会引发错误,因为 SSL 证书与它们使用的域不匹配。
有没有办法通过 HTTPS 而不是 HTTP 来获取这些图像?
您必须替换子域:
http://is<n> with https://is<n>-ssl
例子:
至
iTunes 不支持通过 HTTPS 进行专辑封面或歌曲预览(目前)。
工具和 HTTPS 链接的更改是最近(仅四个月前): http: //www.apple.com/itunes/affiliates/resources/blog/secure-links-to-itunes---content-and -tools.html
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 }