swift - 我的 http 请求不起作用

标签 swift

我已经更新了我的 xcode,但 https 请求有问题。我需要获取 html 代码。但有些网站很好,有些则为零。我认为 plist 文件有问题,但日志中的先前版本说的是 Clear Http 和不安全的加载。当前的 xcode - 没有。为什么我在某些网站上遇到问题? Yandex.ru - 我可以获得 html 内容。 Google.com - 我不能(转到 catch block )。这个问题与不同的网站有关。其中一部分我能得到,第二部分我不能。感谢您解决了我的问题。

这是我的代码:

if let url = URL(string: "http://google.com") {
  do {
    let contents = try String(contentsOf: url)
    print(contents)
  } catch {
    print("catch")
  }
} else {
  print("else")
}

附件中的我的 plist 文件:

enter image description here

最佳答案

您应该尝试打印抛出的错误,而不是使用 print("catch") 进行捕获

catch (let e) {
    print(e)
}

我看到的错误是 Error Domain=NSCocoaErrorDomain Code=261 “无法使用文本编码 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

关于swift - 我的 http 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47140599/

相关文章:

swift - 使用 cocoa/osx/swift 更改图像的分辨率和大小(无移动应用程序)

ios - NavigationController nil with Material

swift - 过滤和求和在 swift 的同一个查询中不起作用

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

swift - 在 Alamofire 请求中使用 validate() 时如何处理错误?

swift - 为什么在协议(protocol)中定义的重写方法会在父类中调用,而不是在子类中调用?

ios - 如何从子数组对象中检索属性值?

ios 在应用程序中访问负载配置文件

ios - swift enum 在单个 switch-case 中获取具有相同参数的多个 case 的关联值

ios - swift 3 录制视频但不录制音频