如何在Swift(tvOS)中通过smb下载文件



如何在Swift(tvOS(中通过smb下载文件?NetFS和Cooca不可用于tvOS,并且当我使用URLSession数据任务时;smb://xxx.xxx.xxx.xx/share/test.txt"Swift告诉我smb不是一个有效的url。

有什么解决方案可以通过smb为tvOS下载文件吗?

尝试使用此代码:

let url = self.smbManager.getFullUrl(fileName: self.file.name)
let request: NSURLRequest = NSURLRequest(url: url!)
let session = URLSession.shared
session.dataTask(with: request as URLRequest) { data, response, error in
print(data)
}.resume()

错误为:完成时出现错误[-1002]错误域=NSURLError域代码=-1002";不支持的URL";UserInfo={NSLocalizedDescription=不支持的URL,NSErrorFailingURLStringKey=smb://xxx.xxx.xxx.xx/share/test.txt,NSErrorFailingURLKey=smb://xxx.xxx.xsx/share/test.txt,_NSURLErrorRelatedURLSessionTaskErrorKey=("LocalDataTask<1>quot;),_NSURLErrorFailingURLSessionTaskErrorKey=本地数据任务<1>,NSUnderlyingError=0x2813a7c60{错误域=kCFErrorDomainCF网络代码=-1002"(空("}}

谢谢。

smb解决方案

let url = NSURL(string: "smb://xxx.xxx.xxx.xx/share/test.txt")
let request: NSURLRequest = NSURLRequest(URL: url!)
let session = NSURLSession.sharedSession()   
session.dataTaskWithRequest(request) { (data, response, error) -> Void in                                  print("Response")    
let reply = NSString(data: data!, encoding: NSUTF8StringEncoding) 
print(reply)

}

URLSession的设计目的是使网络传输尽可能简单,其"downloadTask(("方法就是一个很好的例子。这将获取您指定的URL的内容,将其保存到本地文件,然后调用一个完成处理程序,以便您可以在一个文件中操作该文件。

为了证明这一点,这里有一些代码可以将源代码下载到apple.com主页:

let url = URL(string: "https://www.apple.com")!
let task = URLSession.shared.downloadTask(with: url) { localURL, urlResponse, error in
if let localURL = localURL {
if let string = try? String(contentsOf: localURL) {
print(string)
}
}
}
task.resume()

这里有几件重要的事情需要注意:

  1. 使用本地URL调用您的完成处理程序,该URL是数据本地保存的位置。这是可选的,所以您需要小心地打开它
  2. 如果出现问题,例如网络故障,那么您将把一个错误传给你,解释发生了什么
  3. 创建下载任务后,应致电resume()让它发生
  4. 您不需要担心将下载任务存储在某个地方当它发生时,它被上的共享URLSession跟踪代表您

相关内容

  • 没有找到相关文章

最新更新