Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用NSUrlSession在iOS8中使用流请求进行后台上传

使用NSUrlSession在iOS8中使用流请求进行后台上传
EN

Stack Overflow用户
提问于 2015-02-03 22:49:23
回答 2查看 2.8K关注 0票数 1

以前在iOS7中,当我们试图在后台使用流请求上载时,我们会得到以下异常

由于异常“NSGenericException”终止应用程序,原因:“后台会话中的上载任务必须来自文件”

但是在iOS8中,当我们尝试在后台使用流上传时也不例外。

现在我的问题是

( 1) uploadTaskWithStreamedRequest:是否允许在iOS8中进行葫芦上传?

2)在uploadTaskWithStreamedRequest.中,我使用的是背景NSURLConfiguration我使用-(void)URLSession:(NSURLSession *)会话任务:(NSURLSessionTask*) needNewBodyStream:(void (^)(NSInputStream *))completionHandler向NSUrlSession提供流。当应用程序在前台时,它运行良好,并将我的文件上传到服务器。但是,一旦应用程序在后台运行,流就会结束,NSURLSession就会出现以下错误

错误Domain=NSURLErrorDomain代码=-997“与后台传输服务失去连接”

我认为当应用程序进入后台时,我的流就结束了。现在我的问题是,在哪一个运行循环中,我应该安排我的流,或者让我知道在我的理解中是否有任何错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task needNewBodyStream:(void (^)(NSInputStream *))completionHandler
{
    // Open producer/consumer streams.  We open the producerStream straight
    // away.  We leave the consumerStream alone; NSURLConnection will deal
    // with it.
    NSLog(@"%@", [NSThread currentThread]);
    NSInputStream *consStream;
    NSOutputStream *prodStream;
    [NSStream createBoundInputStream:&consStream outputStream:&prodStream bufferSize:SFAMaxBufferLength];
    assert(consStream != nil);
    assert(prodStream != nil);
    self.consumerStream = consStream;
    self.producerStream = prodStream;
    self.producerStream.delegate = self;
    [self.producerStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
    [self.producerStream open];
    // Set up our state to send the body prefix first.
    self.buffer = [self.bodyPrefixData bytes];
    self.bufferLimit = [self.bodyPrefixData length];
    completionHandler(self.consumerStream);
}
EN

回答 2

Stack Overflow用户

发布于 2015-02-10 08:41:40

不能使用后台配置上载流任务。我仅在两种情况下成功地上传了数据:

  1. 下载具有存储在请求体中的数据的任务。
  2. 从文件上传任务。在这种情况下,您将不会收到响应体。
票数 2
EN

Stack Overflow用户

发布于 2015-08-17 20:34:03

你可以上传一个多部分文件的背景-只是这不是直接。参考:AFNetworking error in uploadTaskWithStreamedRequest

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28315141

复制
相关文章
如何使用ReconAIzer将OpenAI添加到Burp中
ReconAIzer是一款功能强大的Burp Suite扩展,该工具基于Jython开发,可以为Burp Stuite添加OpenAI能力,并利用OpenAI来优化和增强渗透测试过程中的网络侦查任务。该工具专为漏洞猎人和渗透测试人员设计,支持以自动化的形式执行多种网络安全任务,可以帮助广大安全研究人员以简单快速的形式识别和利用漏洞。
FB客服
2023/08/08
2990
如何使用ReconAIzer将OpenAI添加到Burp中
将下载到本地的JAR包手动添加到Maven仓库(转)
常用Maven仓库网址: http://mvnrepository.com/ http://search.maven.org/ http://repository.sonatype.org/content/groups/public/ http://people.apache.org/repo/m2-snapshot-repository/ http://people.apache.org/repo/m2-incubating-repository/
HUC思梦
2020/09/03
1.9K0
将下载到本地的JAR包手动添加到Maven仓库(转)
将Sublime添加到鼠标右键
2、找到 HKEY_CLASSES_ROOT/*/shell 目录,在此目录下操作。
新码农
2020/03/05
3K0
IntelliJ IDEA 中的版本控制介绍(中)
由于 IntelliJ IDEA 支持的版本控制工具非常的多,但咱们真正能够用到的也就两三个而已,因此在本篇博文中,咱们主要介绍 SVN、Git 和 GitHub 的配置方法。 SVN 如果想要在 I
CG国斌
2018/01/26
1K0
Winform 后台将指定的控件集合添加到制定容器中
1 /// <summary> 2 /// 把按钮按照行数分割排列 3 /// </summary> 4 /// <param name="ControlArry">按钮集合</param> 5 /// <param name="control_parent">父容器</param> 6 /// <param name="RowCount">每一行数量</param> 7 ///
FreeTimeWorker
2020/08/31
2.3K0
[Go]Golang中控制并发的sync包
Mutex:互斥锁 RWMutex:读写锁 WaitGroup:等待组 Once:单次执行 Cond:信号量 Pool:临时对象池 Map:自带锁的map
唯一Chat
2021/03/11
5650
【GIT版本控制】--什么是版本控制
版本控制是在软件开发和许多其他领域中非常重要的工具,因为它解决了许多与协作、追踪更改和管理项目相关的问题。以下是一些主要原因,解释了为什么需要版本控制:
喵叔
2023/10/06
3140
将Windows Terminal添加到鼠标右键
导读 非常实用的小技巧。 下载Windows Terminal图标,右键另存为。 [WindowsTerminal图标] 保存至'C:\Users\Administrator\AppData\Local\Terminal\Terminal.ico'。 win+R输入'regedit',打开注册表。 找到'HKEY_CLASSES_ROOT\Directory\Background\shell'目录,在此目录下操作。 新建项'wt',双击右边'默认',更改右键文字显示内容'Windows Terminal H
新码农
2020/08/05
3.6K0
将Windows Terminal添加到鼠标右键
版本控制
每次发布 Web 服务时,都会为该 Web 服务分配一个版本。版本控制使用户能够更好地管理其 Web 服务的发布,并帮助使用您的服务的人轻松找到它。
冬夜先生
2022/02/27
1.3K0
将oracle驱动包加到maven中
2、确认maven环境变量已整确(cmd 中执行 mvn -v 显示maven的版本信息);
qubianzhong
2018/08/10
5060
Nexus高级配置之如何将本地jar添加到Nexus中
Java后端技术所推送文章,为本人原创、网上收集或其他作者投稿,对于网上收集部分除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,我们会在24小时内删除处理,谢谢!^_^ QQ:1573876303。
Java后端技术
2018/08/09
2.7K0
Nexus高级配置之如何将本地jar添加到Nexus中
微软计划将 ChatGPT 添加到 Bing 中,以吸引谷歌搜索用户
作者 | 褚杏娟 据彭博社报道,有知情人士透露,微软正准备将 OpenAI 的 ChatGPT 聊天机器人添加到其 Bing 搜索引擎中,以吸引竞争对手谷歌的用户。 这位知情人士表示,微软相信,对于搜索用户来说,提供更具对话性和上下文回复,可以比链接提供更好的答案,从而赢得用户。微软可能在未来几个月内推出附加功能,但现在仍在权衡聊天机器人的准确性以及将其纳入搜索引擎的速度。该知情人士表示,最初的版本可能是对一小部分用户的有限测试。 微软的 Bing 服务规模远小于 Alphabet Inc. 占主导地位的
深度学习与Python
2023/03/29
9270
微软计划将 ChatGPT 添加到 Bing 中,以吸引谷歌搜索用户
eclipse中如何删除已经添加到 Web App Libraries 中引用的jar包
在 eclipse 中的 动态web项目 中,例如:我们通过向  /bos19/WebContent/WEB-INF/lib 中添加我们需要用到的jar包,如下图所示:
黑泽君
2018/10/11
6.3K0
eclipse中如何删除已经添加到 Web App Libraries 中引用的jar包
dart - 将 orElse 函数添加到 firstWhere 方法
我正在尝试将 onElse 函数添加到 iterator.firstWhere 方法,但我无法获得正确的语法。 我试过类似的东西
徐建国
2021/08/31
1.6K0
将Emoji表情添加到项目中 顶
选择完需要的表情,点击消息预览就可以看到效果了,有一个微笑表情是QQ表情~~ 可以不用管它。
linapex
2019/03/26
1.8K0
将Emoji表情添加到项目中
                                                    顶
如何将MV中的音频添加到EasyNVR中做直播背景音乐?
EasyNVR已经支持自定义上传音频文件,可以做慢直播场景使用,前两天有一个开发者提出一个问题:想把一个MV中的音频拿出来放到EasyNVR中去做慢直播。
EasyNVR
2021/10/28
4.1K0
如何将MV中的音频添加到EasyNVR中做直播背景音乐?
将程序添加到右键菜单快速启动
打开注册表编辑器:按下 Win + R 键,输入 regedit,然后按回车键打开注册表编辑器。
浪漫主义狗
2023/09/04
4620
将程序添加到右键菜单快速启动
PostgreSQL中的多版本并发控制-MVCC
MVCC , Multi - Version Concurrency Control , 多版本控制并发
小徐
2020/05/01
1.9K0
PostgreSQL中的多版本并发控制-MVCC
IntelliJ IDEA 中的版本控制介绍(下)
在「IntelliJ IDEA 中的版本控制介绍」中,我们已经简单了解了 IntelliJ IDEA 的版本控制机制,那么接下来,就让我们一起看看在 IntelliJ IDEA 中进行具体的版本控制操
CG国斌
2018/01/26
2K0
PostgreSQL中的多版本并发控制-MVCC
MVCC , Multi - Version Concurrency Control , 多版本控制并发
小徐
2020/05/12
1.6K0
PostgreSQL中的多版本并发控制-MVCC

相似问题

SSIS包版本控制

30

控制Python包版本

11

厨师包版本控制

30

版本控制中的Oracle包?

50

查看package.json,将版本添加到包中

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文