繁体   English   中英

Swift从URL获取HTML

[英]Swift get HTML from URL

我正在尝试从URL获取并打印HTML。 这是我的操作方法(使用Swift 2):

let testUrl = NSURL(string: "https://www.google.com")
var html = NSString()
do {
    html = try NSString(contentsOfURL: testUrl!, encoding: NSUTF8StringEncoding)
} catch{print(error)}
print(html)

并在控制台中打印以下错误:

错误域= NSCocoaErrorDomain代码= 261“无法使用文本编码Unicode(UTF-8)打开文件。” UserInfo = {NSURL = https://www.google.com,NSStringEncoding = 4}

任何想法?

似乎www.google.com使用ISO 8859-1编码发送响应,相应的NSString编码为NSISOLatin1StringEncoding

html = try NSString(contentsOfURL: testUrl!, encoding: NSISOLatin1StringEncoding)

您还可以自动检测HTTP响应编码,例如,参见https://stackoverflow.com/a/32051684/1187415

Swift 3解决方案:

do {

html = try NSString(contentsOf: url, encoding: String.Encoding.isoLatin1.rawValue)

} catch let error {

  print(error)

}

Swift 5解决方案:

try! String(contentsOf: URL(string: "https://www.google.com"), encoding: .utf16)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM