gpt4 book ai didi

ios - totalBytesExpectedToWrite 在 NSURLSessionDownloadTask 中为 -1

转载 作者:可可西里 更新时间:2023-11-01 03:28:05 33 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。我使用 NSURLSessionNSURLSessionDownloadTask 从 Internet 加载文件。这是代码

NSURLSessionConfiguration *sessionConfiguration =
[NSURLSessionConfiguration backgroundSessionConfiguration:kSessionId];
self.session = [NSURLSession sessionWithConfiguration:sessionConfiguration
delegate:self
delegateQueue:[NSOperationQueue new]];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSessionDownloadTask *downloadTask = [self.session downloadTaskWithRequest:request];
[downloadTask resume];

我的类被声明为 NSURLSessionDownloadDelegate 并且我得到了很好的回调。但是当系统调用委托(delegate)方法时

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite
{
NSLog(@"totalBytesExpectedToWrite: %lld", totalBytesExpectedToWrite);
NSLog(@"%lld", totalBytesWritten);
}

totalBytesExpectedToWrite 始终等于 -1 并且我无法向用户显示进度,因为我不知道下载文件的大小。

你能提示我哪里出错了吗?

最佳答案

-1NSURLSessionTransferSizeUnknown,表示http服务器没有提供“Content-Length” header (数据使用“Transfer-Encoding: chunked”发送)。

您可能无能为力。您可以尝试 https://stackoverflow.com/a/12599242/1187415 中的解决方法也适用于您的情况:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:anURL];
[request addValue:@"" forHTTPHeaderField:@"Accept-Encoding"];

关于ios - totalBytesExpectedToWrite 在 NSURLSessionDownloadTask 中为 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23585432/

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