关键词:
【中文标题】制作进度条以获取 AFNetworking 3.0 的响应【英文标题】:Make a progress bar for get the response with AFNetworking 3.0 【发布时间】:2016-01-21 11:05:58 【问题描述】:我想为api调用制作进度条并以成功结束,我正在使用AFNetworking 3.0版本。
我执行以下代码来衡量进度。
NSURLSessionDataTask *obj = [manager POST:UrlForGetAllCalEntry parameters:jsonDict progress:^(NSProgress * _Nonnull uploadProgress)
success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject)
if ([[responseObject valueForKey:@"code"] integerValue] == 200)
failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error)
[TRAVALARMMANAGER setMessage:error.localizedDescription withView:[APPDELEGATE window] textColor:txtMsgColor bgColor:bgMsgColor];
NSLog(@"Error: %@", error);
];
[manager setDataTaskDidReceiveDataBlock:^(NSURLSession * _Nonnull session, NSURLSessionDataTask * _Nonnull dataTask, NSData * _Nonnull data)
if (dataTask.countOfBytesExpectedToReceive == NSURLSessionTransferSizeUnknown)
return;
if (dataTask != obj)
return;
NSUInteger code = [(NSHTTPURLResponse *)dataTask.response statusCode];
if (!(code> 199 && code < 400))
return;
long long bytesReceived = [dataTask countOfBytesReceived];
long long bytesTotal = [dataTask countOfBytesExpectedToReceive];
NSLog(@"... %lld/%lld",
bytesReceived,
bytesTotal);
];
但是方法从
返回如果 (dataTask.countOfBytesExpectedToReceive == NSURLSessionTransferSizeUnknown) 返回;
此语句始终返回 true。我不明白为什么? .我还打印了标题,它有“联系长度”选项。
【问题讨论】:
【参考方案1】:来自Apple Docs
讨论 该值是根据从服务器接收到的 Content-Length 标头确定的。如果该标头不存在,则值为 NSURLSessionTransferSizeUnknown。
您是否尝试避免使用 if 语句? 当我下载文件时我不使用那个检查,我只计算你所做的除法的进度。
【讨论】:
我尝试注释该代码,然后我在 [dataTask countOfBytesExpectedToReceive] 中得到 -1;这个方法 试试看这个回复http://***.com/a/21123613/5809921 我尝试使用您的解决方案链接,但每次都得到 expectedContentLength = -1。 api端需要改吗?【参考方案2】:嗯,我用这个方法来监控下载进度,对我来说效果很好。
- (void)setDownloadTaskDidWriteDataBlock:(void (^)(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite))block
self.downloadTaskDidWriteData = block;
↓↓↓↓↓↓ 例如↓↓↓↓↓↓
开始下载:
NSURL *downloadURL = [NSURL URLWithString:@"example.com/file.mp4"];
NSURLRequest *request = [NSURLRequest requestWithURL:downloadURL];
self.downloadTask = [self.manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response)
// this progress param is "downloadTask operation" progress, it's not the data receiving progress
return nil;
completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error)
];
[self.downloadTask resume];
计算下载进度:
__weak typeof(self) vc = self;
[self.manager setDownloadTaskDidWriteDataBlock:^(NSURLSession *session, NSURLSessionDownloadTask *downloadTask, int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite)
dispatch_async(dispatch_get_main_queue(), ^
// here is what you want
vc.progressView.progress = (CGFloat)totalBytesWritten / totalBytesExpectedToWrite;
);
];
结果:
TestProject Image 希望能帮助到你。
【讨论】:
我没有下载任何东西,我只想同步日历事件并获得回复。不需要下载任何东西【参考方案3】:希望对你有帮助,你可以有很多指标类型 https://github.com/jdg/MBProgressHUD
【讨论】:
我不要指标。我想要有下载效果的进度条。获取 jquery ui 进度条以进行动画处理
】获取jqueryui进度条以进行动画处理【英文标题】:Gettingajqueryuiprogressbartoanimate【发布时间】:2012-08-0214:34:53【问题描述】:这些是用于表示进度条的两个<div>s的代码(jqueryui进度条):<divstyle="margin-left:10px;margin-righ... 查看详情
我如何在 AFNetworking 3.0 中获取 allHTTPHeaderFields
】我如何在AFNetworking3.0中获取allHTTPHeaderFields【英文标题】:HowIfetchallHTTPHeaderFieldsinAFNetworking3.0【发布时间】:2019-08-0906:41:34【问题描述】:我正在将我的代码从AFNetworking2.x迁移到3.0。在AFNetworking2.x中AFHTTPRequestOPeration*requestOperatio... 查看详情
无法在 AFNetworking 中获取下载进度
】无法在AFNetworking中获取下载进度【英文标题】:NotabletogetthedownloadprogressinAFNetworking【发布时间】:2014-12-1713:30:11【问题描述】:我正在尝试使用以下代码使用AFNetworking2.0下载文件AFHTTPRequestSerializer*serialize=[AFHTTPRequestSerializernew];... 查看详情
AFNetworking 3.0 未从响应中获取 json
】AFNetworking3.0未从响应中获取json【英文标题】:AFNetworking3.0notgettingjsonfromresponse【发布时间】:2016-06-2604:34:22【问题描述】:我正在发布请求以获取响应responseObject但数据格式。为什么它不是以json格式出现。AFHTTPSessionManager*manage... 查看详情
在故障块 AFNetworking 3.0 上获取 responseObject
】在故障块AFNetworking3.0上获取responseObject【英文标题】:getresponseObjectonfailureblockAFNetworking3.0【发布时间】:2016-01-2911:21:36【问题描述】:如何从AFNetworking3.x中的故障块中获取响应字符串,在2.x版本中,这样做的方法是:[managerGET:... 查看详情
AFNetworking 1.x 到 3.x 迁移 - 获取下载进度?
】AFNetworking1.x到3.x迁移-获取下载进度?【英文标题】:AFNetworking1.xto3.xmigration-getdownloadprogress?【发布时间】:2016-02-1208:56:31【问题描述】:我需要下载带有进度条的图像。这就是我在AFNetworking1.x中所做的,但不适用于AFNetworking3.x... 查看详情
使用 AFNetworking 2.0 + NSProgress + 自定义 ProgressView 获取下载进度
】使用AFNetworking2.0+NSProgress+自定义ProgressView获取下载进度【英文标题】:GettingDownloadprogresswithAFNetworking2.0+NSProgress+CustomProgressView【发布时间】:2014-01-2713:17:57【问题描述】:我在尝试使用AFNetworking2.0从下载任务中获取进度时感到... 查看详情
AFNetworking 3.0 下载后台模式
】AFNetworking3.0下载后台模式【英文标题】:AFNetworking3.0downloadbackgroundmode【发布时间】:2019-08-0108:09:00【问题描述】:我使用AFNetworking库3.0下载文件。我为AFNetworking会话创建了单例,但是当我的手机进入锁屏会话时已被取消。我... 查看详情
动画进度条以显示网页的进度
】动画进度条以显示网页的进度【英文标题】:animatingprogressbartoshowtheprogressofwebpage【发布时间】:2013-08-1202:20:56【问题描述】:我的页面顶部有一个进度条,我希望该条显示网页加载的进度。当整个页面加载时,我希望栏显示10... 查看详情
使用引导进度条以模态显示上传进度
】使用引导进度条以模态显示上传进度【英文标题】:DisplayUploadProgressinModalwithBootstrapProgressBar【发布时间】:2015-04-2003:01:02【问题描述】:我正在构建一个c#MVC应用程序,它显示一个表单并允许用户上传一些文件。当用户点击提... 查看详情
AFNetworking + JSON + 进度下载
】AFNetworking+JSON+进度下载【英文标题】:AFNetworking+JSON+progressdownload【发布时间】:2012-02-0821:00:23【问题描述】:我正在使用AFNetworking并且非常喜欢它。我需要从我的服务器获取JSON数据,没关系,它运行良好。我添加了setDownloadPr... 查看详情
如何为 Windows 7 编写进度条以在任务栏上进行自我更新?
】如何为Windows7编写进度条以在任务栏上进行自我更新?【英文标题】:HowdoIcodeaprogressbarforWindows7toalsoupdateitselfonthetaskbar?【发布时间】:2010-11-1121:45:35【问题描述】:Windows7有一个很棒的新功能,应用程序可以通过状态栏报告当... 查看详情
AFNetworking 3.0 迁移
】AFNetworking3.0迁移【英文标题】:AFNetworking3.0migration【发布时间】:2016-01-2808:14:23【问题描述】:现在我正在使用AFNetworking2.0,我想将其迁移到AFNetworking3.0。我已将文件添加到项目中,它显示了许多错误。我检查了migrationguide。... 查看详情
AFNetworking 3.0 AFURLResponseSerialization 缺失
】AFNetworking3.0AFURLResponseSerialization缺失【英文标题】:AFNetworking3.0AFURLResponseSerializationmissing【发布时间】:2016-02-2319:51:23【问题描述】:我被分配从事一个使用手动添加的afnetworking的项目。我将其删除并通过cocoaPods安装了AFNetworki... 查看详情
AFNetworking 3.0 迁移重定向块
】AFNetworking3.0迁移重定向块【英文标题】:AFNetworking3.0migrationforredirectblock【发布时间】:2016-05-2715:42:03【问题描述】:如何更新这个已弃用的功能以使用AFNetworking3.0?AFHTTPRequestOperation*requestOperation=[[AFHTTPRequestOperationalloc]initWithRe... 查看详情
AFNetworking 3.0 发送请求正文内容 [重复]
】AFNetworking3.0发送请求正文内容[重复]【英文标题】:AFNetworking3.0SendRequestBodycontent[duplicate]【发布时间】:2017-07-2502:31:39【问题描述】:我正在开发一个使用AFNetworking连接API接口的项目。我的问题是如何向后端发送包含电子邮件... 查看详情
AFNetworking 3.0 无法下载图片
】AFNetworking3.0无法下载图片【英文标题】:AFNetworking3.0can\'tdownloadimage【发布时间】:2016-03-1509:29:05【问题描述】:我正在尝试以这种方式使用AFNetworking3.0下载图像:-(UIImage*)loadImage:(NSString*)link__blockUIImage*image=[UIImageimageNamed:@"no_us... 查看详情
SWHttpTrafficRecorder AFNetworking 3.0 兼容性
】SWHttpTrafficRecorderAFNetworking3.0兼容性【英文标题】:SWHttpTrafficRecorderAFNetworking3.0compatibility【发布时间】:2016-12-1000:51:27【问题描述】:我正在使用OHHTTPStubs来存根http请求,并且我正在尝试使用SWHttpTrafficRecorder来记录AFNetworking产... 查看详情