URLSession数据任务在Swift4.2 / iOS12中返回0字节的数据

问题描述 投票:6回答:1

我们正在从我们的应用程序访问PDF URL并获取PDF数据。在将我们的代码库Swift2.3转换为Swift4.2后,我们得到0字节的数据作为响应。但是当我们在浏览器中打开相同的URL时,它会显示PDF文件。我们也没有收到任何错误。在Swift2.3代码库中,我们将精确的数据值作为有效字节。我们需要在URLSession中配置什么来获取Swift4.2中的确切数据字节。

// url - PDF服务器网址值

let session:Foundation.URLSession = Foundation.URLSession(configuration:URLSessionConfiguration.default delegate:self delegateQueue:nil)
let task = session.dataTask(with: url, completionHandler:{(data,response,error) in 
    // here data coming as 0 bytes 
})
task.resume()
ios swift nsurlsession ios12 swift4.2
1个回答
-1
投票

URLSession.dataTask有时会返回没有错误但是零字节。我的解决方法是使用URLSession.downloadTask,并使用localURL的内容来创建数据缓冲区。顺便说一句,使用.utf8编码从此缓冲区创建String失败,而.ascii工作正常。因此,我怀疑URL内容的编码可能是问题。

© www.soinside.com 2019 - 2024. All rights reserved.