在共享扩展中上传图片导致 NSURLErrorDomain Code=-997

Posted

技术标签:

【中文标题】在共享扩展中上传图片导致 NSURLErrorDomain Code=-997【英文标题】:Upload image in a share extension results in NSURLErrorDomain Code=-997 【发布时间】:2014-12-05 16:29:15 【问题描述】:

我尝试实现一个扩展,用户可以通过它在 App.net 上共享图像。

经过多次反复试验,我终于没有想法了。

我有一个创建请求的框架。该请求是带有Content-Disposition: form-dataPOST 请求。因此我想我必须使用sessionDataTask 来上传图片。

会话的委托是同一框架中的单例。调用了一些委托方法。

但是didReceiveData 永远不会被调用。相反,在任何上传开始之前,我在didCompleteWithError 中收到以下错误:

Error Domain=NSURLErrorDomain Code=-997 "Lost connection to background transfer service" UserInfo=0x7b29dc80 NSErrorFailingURLKey=https://alpha-api.app.net/stream/0/files, NSErrorFailingURLStringKey=https://alpha-api.app.net/stream/0/files, NSLocalizedDescription=Lost connection to background transfer service

这是分享扩展中的代码:

let imageUploadRequest = RequestFactory.imageUploadRequest(imageToShare, accessToken: accessToken!)

let sessionId = "de.dasdom.jupp.image.backgroundsession"

let config = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(sessionId)

config.sharedContainerIdentifier = "group.de.dasdom.Jupp"

let session = NSURLSession(configuration: config, delegate: PostService.sharedService, delegateQueue: NSOperationQueue.mainQueue())

let sessionTask = session.dataTaskWithRequest(imageUploadRequest)
sessionTask.resume()

self.extensionContext!.completeRequestReturningItems(nil, completionHandler: nil)

这也会在主机应用程序中产生相同的错误。

我已经在共享扩展和宿主应用中设置了一个应用组。

上传确实有效,但我需要上传的响应来为 App.net 撰写帖子。当我使用普通的 NSURLSession 时,一切正常。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我认为当扩展程序返回时数据任务被取消。 NSURLSessionUploadTask 可能会让您的运气更好,对于后台上传请求,它必须有文件支持。

【讨论】:

谢谢。可能。但我认为这是一个错误,因为这是后台任务的工作。我已经尝试过上传任务,但 API 似乎无法使用它。

以上是关于在共享扩展中上传图片导致 NSURLErrorDomain Code=-997的主要内容,如果未能解决你的问题,请参考以下文章

如何在上传前在 iOS 共享扩展中缩小图像

共享扩展不上传全尺寸图像

ASP.NET上传图片到共享文件夹内

在项目中全局添加FastClick导致图片上传插件在ios端失效的解决方案

kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器

在共享扩展中使用 SVProgressHUD