zoukankan      html  css  js  c++  java
  • 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 进行异步获取数据。。那个。。更加的简单。

  • 相关阅读:
    sqlmap注入教程
    Burp Suite使用详解一
    手工注入基本思路
    搜索型注入漏洞手工注入过程
    龙灵:特邀国内第一讲师“玄魂” 在线培训黑客神器Kali Linux
    linux grep命令详解
    linux ps命令详解
    linux DNS服务
    linux用户与组管理命令的基本操作
    canvas绘制坐标轴
  • 原文地址:https://www.cnblogs.com/PleaseInputEnglish/p/3486548.html
Copyright © 2011-2022 走看看