IOS开发---菜鸟学习之路--(十二)-利用ASIHTTPRequest进行异步获取数据

想要实现异步获取的话我这边了解过来有两个非常简单的方式

一个是利用ASIHTTPRequest来实现异步获取数据

另一个则是利用MBProgressHUD来实现异步获取数据

本章就先来讲解如何利用ASIHTTPRequest类来实现异步数据获取

首先大家需要百度一下ASIHTTPRequest 然后看一下百度里搜到的那些文章(不要问具体是那篇,因为我发现百度搜过来的东西全部都是一样的,所以。。。。大致看下 哪篇都一样的就知道我说的是哪篇了,这也是为什么我决定自己写点内容的原因。再次吐槽百度个坑爹的家伙。)

看完了的话就接着看我们的内容吧

需要添加的类库

CFNetwork.framework ,SystemConfiguration.framework, MobileCoreServices.framework,CoreGraphics.framework和libz.1.2.3.dylib

我就直接上代码了我这边使用的是ASIFormDataRequest,使用前需要引用头文件 ASIFormDataRequest.h

我这边在GetWebInfo类里面定义了一个nsstring 类型的mywebaddress属性用来存放地址,这样的话可以便于我们管理地址

#pragma mark
#pragma 异步加载数据
//初始化数据 异步加载
-(void)initListData{
    //    NSURL *url=[NSURL URLWithString:@"http://xxx.xxx.xxx.xxx/WebServicesForIOS/IOSWebservices.ashx?Method=GetNewsbyPage&type=公共新闻&rows=4&page=1"];

    GetWebInfo *getwebinfo=[[GetWebInfo alloc] init];
    NSURL *url=[NSURL URLWithString:getwebinfo.mywebaddress];
    ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:url];
    NSString *mypage=[NSString  stringWithFormat:@"%d",_page ];
    [request addPostValue:@"GetNewsbyPage" forKey:@"Method"];
    [request addPostValue:@"公共新闻" forKey:@"type"];
    [request addPostValue:@"4" forKey:@"rows"];
    [request addPostValue:mypage forKey:@"page"];
    [request setDelegate:self];
    [request startAsynchronous];
}
//异步加载成功
- (void)requestFinished:(ASIHTTPRequest *)request
{
    NSData *responseData = [request responseData];
    NSArray *keys =   [NSJSONSerialization
                       JSONObjectWithData:responseData
                       options:NSJSONReadingMutableContainers
                       error:nil];
    allcount=[[keys valueForKey:@"total"] integerValue];
    [self.list addObject:[keys valueForKey:@"rows"]];
    [_tableView reloadData];
}
//异步加载失败
- (void)requestFailed:(ASIHTTPRequest *)request
{
    //      NSError *error = [request error];
    UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"提示信息!" message:@"加载数据失败!网络连接失败!" delegate:Nil
                                        cancelButtonTitle:@"确定" otherButtonTitles: nil];
    [alert show];
}

 

代码就是这么简单,一个是异步获取失败方法,一个是异步获取成功方法。。。。 

然后就没有然后了。。。。就是这么的简单。

OK本章内容非常少,但是。。。却会很使用,然后。。真的就是这么简单。。

下一章会介绍如何利用 MBProgressHUD 进行异步获取数据。。那个。。更加的简单。

 

 

posted @ 2013-12-23 20:33  公羽翁  阅读(3815)  评论(2编辑  收藏  举报