我更新了我的xcode,我遇到了https请求的问题。我需要获取HTML代码。但是有些网站变好了,有些网站没有。我认为plist文件的问题,但日志中的预先版本说明Clear Http和不安全的负载。目前的xcode - 没有。为什么我要抓住一些网站? Yandex.ru - 我可以获得HTML内容。 Google.com - 我不能(去拦截)。不同站点的这个问题。其中一部分我可以得到,第二部分我不能。谢谢你解决我的问题。
有我的代码:
if let url = URL(string: "http://google.com") {
do {
let contents = try String(contentsOf: url)
print(contents)
} catch {
print("catch")
}
} else {
print("else")
}
我的plist文件附件:
答案 0 :(得分:0)
不应该使用print("catch")
,而应该尝试打印出被抛出的错误
catch (let e) {
print(e)
}
我看到的错误是Error Domain=NSCocoaErrorDomain Code=261 "The file couldn’t be opened using text encoding Unicode (UTF-8)." UserInfo={NSURL=http://google.com, NSStringEncoding=4}
我试过
let contents = try String(contentsOf: url, encoding: String.Encoding.utf8)
但似乎并没有解决问题。取决于Google如何提供他们的网页
最重要
这是一个阻止调用 - 您应该使用异步方法来加载远程URL。此方法实际上是用于从Bundle加载本地资产。请查看NSURLRequest
https://developer.apple.com/documentation/foundation/nsurlrequest和NSURLSession
https://developer.apple.com/documentation/foundation/nsurlsession
答案 1 :(得分:0)
我发现问题 - 所有这些网站都不是UTF-8。我尝试不同,这是工作:
var serverString = NSString(data:data!,encoding:String.Encoding.windowsCP1251.rawValue)