gpt4 book ai didi

xcode - setDownloadProgressBlock中的totalBytesExpectedToRead保持为-1,直到下载完成

转载 作者:行者123 更新时间:2023-12-04 13:28:11 25 4
gpt4 key购买 nike

我一直在搜寻无济于事,并希望您对此有所帮助。

我尝试使用AFHTTPRequestOperation流(通过设置outputstream)下载图像。
它将下载文件,没问题。
但是进度条不会显示正确,因为totalBytesExpectedToRead始终返回-1,并且仅在下载完成后才返回正确的值。

这是流媒体的本质吗?
还是我做错了什么?

我的代码如下。

提前致谢!

(void)invokeAsynchronousSTREAMING:(NSString *)path locationToSave:(NSString *)locationToSave参数:(NSDictionary *)paramDict callId:(NSString *)callId {

NSMutableURLRequest *request = [[AFServerAPIClient sharedClient] requestWithMethod:@"GET" 
path:path
parameters:paramDict];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

if(locationToSave!=nil) {
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:locationToSave append:NO];
}

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

//DO SOMETHING

}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//DO SOMETHING
}
];

[operation setDownloadProgressBlock:^(NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {

NSLog(@"invokeAsyncronousSTREAMING - Received %lld of %lld bytes", totalBytesRead, totalBytesExpectedToRead);

//DO SOMETHING
}];

[operation start];

}//结束invokeAsyncStreaming

最佳答案

如果服务器未在响应中设置-1 HTTP header ,则下载进度可能会返回Content-Length

在这种情况下,建议您改用不确定的进度指示器。

关于xcode - setDownloadProgressBlock中的totalBytesExpectedToRead保持为-1,直到下载完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042925/

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