ios接收数据的两种方式 一种是ASI 另一种是系统自带的类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ios接收数据的两种方式 一种是ASI 另一种是系统自带的类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2125字,纯文字阅读大概需要4分钟。
内容图文
ASI 使用ASIHttpRequest第三方开源库进行信息的下载
导入ASIHttpRequest源码
//创建一个ASI对象
ASIHTTPRequest *request =[ASIHTTPRequestrequestWithURL:url];
//设置代理
request.delegate = self;
//不同request可以通过tag值进行标记
request.tag = 100;
//request执行异步请求数据,默认请求方式为get请求
[request startAsynchronous];
//[request startSynchronous];(同步请求)
#pragma mark - ASI Delegate
//当数据下载完成时,调用此方法
- (void)requestFinished:(ASIHTTPRequest *)request;根据request.responseData来获取数据
//数据下载失败或者没有网络、请求数据超时的时候,调此方法
- (void)requestFailed:(ASIHTTPRequest *)request;
利用系统函数NSURLConnection来接受数据
//用请求的url生成一个请求,请求对象带有请求信息,客户端会将request带给服务端
NSURLRequest *request = [NSURLRequestrequestWithURL:url];
//主线程显示UI和子线程请求数据同时进行,在connectionDidFininshLoading方法调用后,将请求的数据自动调给主线程
_urlConnection = [[ NSURLConnectionalloc] initWithRequest:request delegate:self];
#pragma mark - conntectionDataDelegate
//当客户端收到服务端对请求的回应时,调用此方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{//NSURLResponse 服务端网络请求回应的基类
//http协议下的回应应该为NSHTTPURLResponse
NSHTTPURLResponse *http = (NSHTTPURLResponse *)response;
//带有服务端回应的状态码(200 代表成功,服务端能满足客户端请求;404 客户端请求的资源服务端没有找到;400 客户端请求的语法错误;500服务器错误)
NSInteger status =[http statusCode];
NSLog(@"status:%d",status);
//清空旧数据
[_downloadDatasetLength:0];
}
//当服务端发送数据的时候,调用此方法,用于接收数据
//如果数据量较大,此方法可能会被执行多次
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
//将服务端发送过的数据拼接到_downloadData中
[_downloadDataappendData:data];
}
//当客户端接收数据完毕后,调用此方法
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
if (_downloadData) {
//对数据进行后续操作
id result=[ NSJSONSerializationJSONObjectWithData:_downloadDataoptions:NSJSONReadingMutableContainerserror:nil];
if ([result isKindOfClass:[NSDictionaryclass]]) {
NSDictionary *dic = (NSDictionary *)result;
NSLog(@"dic:%@",dic);
NSArray *array = [dic objectForKey:@"users"];
[_dataArrayaddObjectsFromArray:array];
}
//刷新视图,让tableView利用带有数据的_dataArray进行显示
[self.tableViewreloadData];
}
//可以不用json解析数据 之后会对数据的解析做一个详细的介绍
}
由此可见 第三方asi的方法相对的轻松一些
原文:http://www.cnblogs.com/AbelChen1991/p/3602245.html
内容总结
以上是互联网集市为您收集整理的ios接收数据的两种方式 一种是ASI 另一种是系统自带的类全部内容,希望文章能够帮你解决ios接收数据的两种方式 一种是ASI 另一种是系统自带的类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。