【发布时间】:2014-04-16 14:56:39
【问题描述】:
NSMutableURLRequest *objRequest =[[NSMutableURLRequest alloc]initWithURL:url1];
[objRequest setHTTPMethod:@"POST"];
[objRequest setHTTPBody:[NSData dataWithBytes:(__bridge const void *)(dict) length:[dict count]]];
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:url1]
delegate:self];
[connection start];
-(void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
length = [response expectedContentLength];
NSLog(@"%f",length);
}
我在didReceiveResponse 方法中得到长度-1,但下载文件的数据是完美的...请告诉我如何获得要下载的文件的总长度..
【问题讨论】:
-
无关,但不要打电话给
[connection start]。initWithRequest:delegate:已经开始您的连接。 -
尝试在
didReceiveData:中查找数据长度 -
试试这个,看起来很有希望stackoverflow.com/questions/11136020/…
-
@Desdenova 不错。我注意到这使我可以在我的请求中使用
expectedContentLength,而我以前得到的是-1,但我也注意到(在Charles 中观看请求和响应)当我的响应不是gzip时,我失去了压缩,不出所料,响应要大得多。对于大型下载,这可能会对性能/带宽产生重大影响。
标签: ios iphone ios7 nsurlconnection