JWo*_*ood 3 macos cocoa objective-c
是否可以使用NSURLConnection/NSURLRequest组合向具有Content-Range标头的服务器发送PUT请求?我的意思是我想恢复上传到服务器,它可以接受请求中的字节范围以恢复上传.
我看到你可以设置一个NSInputStream作为请求体,所以我想我可以继承它并覆盖open/seek函数并设置请求头,但它似乎调用了未记录的选择器并打破了实现.
我确信我可以用CFNetwork做到这一点,但似乎必须有一种方法来使用更高级别的API.
关于从哪里开始的任何想法?
编辑:
为了回答我自己的问题,在阅读博客[http://bjhomer.blogspot.com/2011/04/subclassing-nsinputstream.html]之后确实可以做到这一点,该博客详细说明了与CFStream相关的未记录的回调.一旦实现了这些,我可以在open
回调中调用以下内容来跳过:
CFReadStreamSetProperty((CFReadStreamRef)parentStream, kCFStreamPropertyFileCurrentOffset, (CFNumberRef)[NSNumber numberWithUnsignedLongLong:streamOffset]);
Run Code Online (Sandbox Code Playgroud)
谢谢,J
我认为服务器需要支持put方法与范围相结合,但这将是使用高级Objective-C API实现它的方法
NSURL *URL = [NSURL URLWithString:strURL];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:URL];
NSString *range = [NSString stringWithFormat:@"bytes=%lld-%lld",bytesUploaded,uploadSize];
[urlRequest addValue:range forHTTPHeaderField:@"Range"];
[urlRequest setHTTPMethod:@"PUT"];
self.connection = [NSURLConnection connectionWithRequest:urlRequest delegate:self];
Run Code Online (Sandbox Code Playgroud)
干杯
归档时间: |
|
查看次数: |
1956 次 |
最近记录: |