【问题标题】:Cannot get contents of URL无法获取 URL 的内容
【发布时间】:2016-04-01 22:32:24
【问题描述】:

所以我有以下网址:

let theURL : NSURL = NSURL(string: "http://www.iana.org/domains/example")!

但我在跑步后得到的一切:

let blob : String
do {
    blob = try String(contentsOfURL: theURL)
}
catch {...}

是一个控制台语句,内容如下:

CFURLCopyResourcePropertyForKey 失败,因为它传递了一个没有方案的 URL

网址有效,代码适用于:

http://www.example.com

我做错了什么?

【问题讨论】:

  • 理想情况下我可以使用 String(contentsOfURL: _) ;我的网址是否编码不正确?
  • 你不应该同步下载任何数据
  • 很好。使用链接讨论中描述的方法,url应该可以工作吗?
  • 您可以使用 NSURLSession 下载任何类型的数据。你的意思是应该工作?顺便说一句,您还需要编辑您的信息 plist 并添加推力域或使用 https

标签: swift nsurl core-foundation


【解决方案1】:

这是您尝试做的更简洁的版本。

let theURL = NSURL(string: "http://www.iana.org/domains/example")!

let blob : String

do {
  blob = String(theURL)
}
catch { }

更正:

  1. URL 是一个可选的,仍然被包装,这就是为什么你不能分配它。
  2. 您滥用了 contentsOfURL
  3. 如果您立即分配变量,则无需像以前那样声明它

我不确定您要完成什么,但如果您向我提供更多信息,我可以更好地回答您的问题。

【讨论】:

  • 正确,该作业主要是针对问题的(程序中略有不同)我会相应地进行编辑; contentsOfURL 对我正在做的事情是正确的(我不需要它是异步的);对象是获取给定 URL 的 html 内容。
猜你喜欢
  • 2014-01-24
  • 1970-01-01
  • 2023-03-26
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
相关资源
最近更新 更多