有没有可能使用NSURLConnection/NSURLRequest组合来发送带Content-Range头的PUT请求到服务器?我的意思是我想恢复上传到服务器,该服务器可以接受请求中的字节范围以恢复上传。
我知道你可以将NSInputStream设置为请求正文,所以我想我可以子类化它并覆盖打开/寻找函数并设置请求头,但它似乎调用了未记录的选择器并破坏了实现。
我确信我可以使用CFNetwork来完成这个任务,但似乎有更高级别的API可以完成此项工作。
有任何想法从哪里开始吗?
编辑:
回答我的问题,通过阅读一篇博客[http://bjhomer.blogspot.com/2011/04/subclassing-nsinputstream.html],可以实现这一点,该博客详细介绍了与CFStream相关的未记录的回调。一旦实现了这些回调,我可以在
感谢您,J。
我知道你可以将NSInputStream设置为请求正文,所以我想我可以子类化它并覆盖打开/寻找函数并设置请求头,但它似乎调用了未记录的选择器并破坏了实现。
我确信我可以使用CFNetwork来完成这个任务,但似乎有更高级别的API可以完成此项工作。
有任何想法从哪里开始吗?
编辑:
回答我的问题,通过阅读一篇博客[http://bjhomer.blogspot.com/2011/04/subclassing-nsinputstream.html],可以实现这一点,该博客详细介绍了与CFStream相关的未记录的回调。一旦实现了这些回调,我可以在
open
回调中调用以下内容以跳过先前已经上传的字节数:CFReadStreamSetProperty((CFReadStreamRef)parentStream, kCFStreamPropertyFileCurrentOffset, (CFNumberRef)[NSNumber numberWithUnsignedLongLong:streamOffset]);
感谢您,J。
-[NSStream setPorperty:forKey:]
可以很好地解决这个问题!在那里使用的关键是NSStreamFileCurrentOffsetKey
,它自 OS X 10.3 以来就存在,并且在 iOS 2.0 上也是如此。 (请参见NSStream
文档中的 "Constants" 部分) - danyowdee