由于不支持 URL 类型 http,因此无法打开该文件

2024-04-29

使用 iOS 9 我正在尝试使用NSFileManager's moveItemAtURL:

do {
    print(localURL) // http://localhost:3000/api/v1/activities
    print(cacheFile) // file:///Users/kyledecot/Library/Developer/CoreSimulator/Devices/35C03988-D8F5-42E5-AB35-B99BE461EEAE/data/Containers/Data/Application/69593B3A-F764-4BC3-89AD-72B701BF85C8/Library/Caches/activities.json 
    try fileManager.moveItemAtURL(localURL, toURL: cacheFile)
} catch let error as NSError {
    print(error)
}

当捕获错误时,我得到:

错误域 = NSCocoaErrorDomain 代码 = 262 “无法打开文件“activities”,因为不支持 URL 类型 http。”用户信息={NSURL=http://localhost:3000/api/v1/activities http://localhost:3000/api/v1/activities}

更新#1

我已经将适当的值添加到我的Info.plist确保 ATS 满意(参见屏幕截图)。奇怪的是我能够使用 HTTP 从本地服务器下载数据(通过dataTaskWithRequest:)但是 NSFileManager 在尝试执行时会抱怨相同的 URLmoveItemAtURL.


这里有两件事需要知道:

  • 在 iOS 9 中,默认情况下,http://不支持。您必须安全地沟通(与https://)。您可以在您的信息表如果必须的话。

  • NSFileManager URL 必须是磁盘上文件的路径——也就是说,它们必须是file网址。你的不是;这是一个http://网址。如果您的目标是下载文件然后将其复制到某个地方,请使用 NSURLSession 的下载任务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于不支持 URL 类型 http,因此无法打开该文件 的相关文章

随机推荐