//接收服务器响应的方法,http协议返回来对应NSURLResponse,其实是一个NSHTTPURLResponse实例,NSURLResponse是所有请求的基类
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
//响应会带有服务器返回的状态码
//常见的状态码: 200 成功; 400 客户端语法错误;404请求资源没有找到;500 服务器错误
NSLog(@"状态码:%d",[httpResponse statusCode]);
//接收数据之前,对字节缓冲区进行清空操作
[_data setLength:0];
}
//服务器响应请求成功后,向客户端发送数据,客户端用此方法接收数据,数据量大的话,此方法会被执行多次
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
//将收到的数据,拼接到字节缓冲区中
[_data appendData:data];
}
//数据接收完毕后,执行此方法
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
if (_data) {
id result = [NSJSONSerialization JSONObjectWithData:_data options:NSJSONReadingMutableContainers error:nil];
if ([result isKindOfClass:[NSDictionary class]]) {
NSDictionary *dic = (NSDictionary *)result;
NSArray *array = [dic objectForKey:@"users"];
NSLog(@"array:%@",array);
[_dataArray addObjectsFromArray:array];
}
//数据真正准备好了之后,对视图进行刷新
[self.tableView reloadData];
}
}