gpt4 book ai didi

objective-c - 具有内容范围的 Cocoa HTTP PUT

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:27 26 4
gpt4 key购买 nike

是否可以使用 NSURLConnection/NSURLRequest 组合向带有 Content-Range header 的服务器发送 PUT 请求?我的意思是我想恢复上传到服务器,该服务器可以接受恢复上传请求中的字节范围。

我看到您可以将 NSInputStream 设置为请求主体,所以我想我可以将其子类化并覆盖打开/查找函数并设置请求 header ,但它似乎调用未记录的选择器并破坏了实现。

我确信我可以用 CFNetwork 做到这一点,但似乎必须有一种方法可以用更高级别的 API 来做到这一点。

关于从哪里开始的任何想法?

编辑:

为了回答我自己的问题,在阅读博客 [http://bjhomer.blogspot.com/2011/04/subclassing-nsinputstream.html] 后,这确实是可能的,其中详细介绍了与 CFStream 相关的未记录的回调。实现这些后,我可以在 open 回调中调用以下内容以跳过:

CFReadStreamSetProperty((CFReadStreamRef)parentStream, kCFStreamPropertyFileCurrentOffset, (CFNumberRef)[NSNumber numberWithUnsignedLongLong:streamOffset]);

谢谢,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];

干杯

关于objective-c - 具有内容范围的 Cocoa HTTP PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7876698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com