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

时间:2018-11-15 12:27:56

标签: ios swift nsurlsession ios12 swift4.2

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

// URL-PDF服务器的URL值

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()

1 个答案:

答案 0 :(得分:-1)

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