文件下载完成后检查内容类型 nsurlsessiondownloadtask
Check content type when file is done downloading nsurlsessiondownloadtask
我正在使用 nsurlsession 来管理下载 image/video 文件。问题是有时请求会出错并且 returns 文本如 "Content not found." 如何确保正在下载的文件实际上是我请求的文件类型? (例如 .jpeg 或 .mp4)
您可以在 URLSessionDataDelegate
方法 didReceive response
中检查响应 属性 mimeType
并检查它是否是 "image/jpg"
:
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) {
if response.mimeType == "image/jpg" || response.mimeType == "image/jpeg" {
completionHandler(.becomeDownload)
} else {
// your code when it is not jpeg
}
}
}
Swift版本
guard let httpUrlResponse = sessionTask.response as? HTTPURLResponse else {
return
}
guard let mimeType = httpUrlResponse.mimeType else {
return
}
我正在使用 nsurlsession 来管理下载 image/video 文件。问题是有时请求会出错并且 returns 文本如 "Content not found." 如何确保正在下载的文件实际上是我请求的文件类型? (例如 .jpeg 或 .mp4)
您可以在 URLSessionDataDelegate
方法 didReceive response
中检查响应 属性 mimeType
并检查它是否是 "image/jpg"
:
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) {
if response.mimeType == "image/jpg" || response.mimeType == "image/jpeg" {
completionHandler(.becomeDownload)
} else {
// your code when it is not jpeg
}
}
}
Swift版本
guard let httpUrlResponse = sessionTask.response as? HTTPURLResponse else {
return
}
guard let mimeType = httpUrlResponse.mimeType else {
return
}