首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得backgroundSession NSURLSessionUploadTask响应

如何获得backgroundSession NSURLSessionUploadTask响应
EN

Stack Overflow用户
提问于 2014-03-18 17:58:16
回答 1查看 5.7K关注 0票数 9

我已经实现了一个在后台运行的NSURLSession (因此它可以使用系统deamon继续执行任务,即使应用程序被挂起)。问题是

代码语言:javascript
复制
-(void)URLSession:(NSURLSession *)session 
       dataTask:(NSURLSessionDataTask *)dataTask 
       didReceiveResponse:(NSURLResponse *)response 
       completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler

从来没有被召唤过。我需要知道响应状态,这样我才能正确处理上传失败。另一篇文章称,一位苹果工程师告诉我们,当会话是backgroundSession时,不会调用此委托方法,以防止应用程序被唤醒。对于如何解决这个问题,有什么建议吗?在我的情况下调用的最后一个URLSession委托方法是:

代码语言:javascript
复制
-(void)URLSession:(NSURLSession *)session 
       dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-18 18:26:27

上传完成后,应该调用NSURLSessionTaskDelegateNSURLSessionTaskDelegate方法。请参考task.response对象,它应该是NSHTTPURLResponse对象。

我确信您正在这样做,但是标准的后台上载任务组件是:

  1. 举办一次背景会议: 背景配置= backgroundSessionConfiguration:@"com.domain.app";NSURLSession * NSURLSessionConfiguration = [NSURLSession sessionWithConfiguration:backgroundConfiguration委托:self delegateQueue:NSOperationQueue mainQueue];
  2. 使用NSURLSession方法uploadTaskWithRequest:fromFile:方法: NSURLSessionTask *Task=会话上载uploadTaskWithRequest:请求文件:fileURL;任务恢复; 在后台会话中,您必须:

代码语言:javascript
复制
- Use `NSURLSessionUploadTask`;
- Use file-based rendition (you cannot use `NSData` based version);
- Use delegate-based rendition  cannot use data tasks; (b) `NSData` rendition of the `NSURLSessionUploadTask`; nor (c) a completion block rendition of the `NSURLSessionUploadTask`.

  1. 通过上传任务,确保不调用setHTTPBodyNSMutableRequest。对于上载任务,请求的主体不能在请求本身中。
  2. 确保您实现了适当的NSURLSessionDelegateNSURLSessionTaskDelegate方法。
  3. 确保在应用程序委托中实现application:handleEventsForBackgroundURLSession: (这样您就可以捕获completionHandler,您将在URLSessionDidFinishEventsForBackgroundURLSession中调用它)。
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22487336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档