我正在使用AFNetworking並非常喜歡它。 我需要從我的服務器獲取JSON數據,並且沒關係,它完美地工作。AFNetworking + JSON +進度下載
我添加了setDownloadProgressBlock,但我認爲它不能與JSON下載一起工作:也許無法得到估計的字節數量下載。
我的代碼:
NSMutableURLRequest *request = [[VinocelaHTTPClient sharedClient] requestWithMethod:@"GET" path:@"ws/webapp/services/pull" parameters:nil];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
}
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON)
{
}];
[operation setDownloadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) {
NSLog(@"Get %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[operation start];
而且我的結果:
得-1的27129字節
獲取127481 -1字節
獲取的-1個字節176699
因此,我認爲AFNetworking下載JSON數據時不能估算出真正的大小,與zip文件或圖像相反?
OK Warrenm。我打印響應頭並且內容長度不存在。你是對的。我在我的服務器上使用Rails 3。我會試着找出爲什麼它不存在,並可能在Rails或類似的東西中強制它。好吧,我在我的Rails配置中添加了這個:config.middleware.use Rack :: ContentLength。但結果很奇怪:「Content-Length」= 2658; =>獲取2658字節的176699。我確定JSON的字節數超過2658 ... – 2012-02-09 07:55:12
聽起來像內容長度的不匹配可能與完整的和gzip的大小之間的差異有關。不知道這是否有幫助... – mattt 2012-02-13 05:13:08