zoukankan      html  css  js  c++  java
  • iOS总结:ASIHttpRequest类库发送请求(同步请求和异步请求)

    1.发送异步请求

     

    1)在.h中导入头文件

     

    #import "ASIHTTPRequest.h"

     

    2)设置代理

    ASIHTTPRequestDelegate

     

    3)URL —-> 发请求 —> 设置代理 —> 开始异步请求

     

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    {

        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

        self.window.backgroundColor = [UIColor whiteColor];

        //异步请求

        //url

        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

        //发请求

        ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

        //代理

        request.delegate = self;

        //开始

        [request startAsynchronous];

        [self.window makeKeyAndVisible];

        return YES;

    }

     

    3)若获取返回的文本信息,调用responseString方法,

       若获取的是二进制文件,如:图片、MP3文件,则调用NSData方法,获取一个NSData对象

    -(void)requestFinished:(ASIHTTPRequest *)request

    {

        NSString *response = [request responseString];

        NSLog(@"%@", response);

        NSData *data = [request responseData];

        NSLog(@"%@", data);

    }

     

    -(void)requestFailed:(ASIHTTPRequest *)request

    {

        NSError *error = [request error];

        NSLog(@"%@", error);

    }

     

    输出结果:

    文本信息为

    二进制信息为

     

     2.同步请求(和异步请求类似)

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    {

        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

        // Override point for customization after application launch.

        self.window.backgroundColor = [UIColor whiteColor];

        //同步请求

        //url

        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

        //发请求

        ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

        //代理

        request.delegate = self;

        //开始

        [request startSynchronous];

        NSError *error = [request error];

        if (!error) {

            NSString *response = [request responseString];

            NSLog(@"%@", response);

        }

        [self.window makeKeyAndVisible];

        return YES;

    }

      一般情况下,应该优先使用异步请求,当在主线程中使用ASIHTTPRequest同步请求,应用程序的界面会锁定,无法进行任何操作,直到请求完成。

  • 相关阅读:
    引自天天安全网 ——※ 中华民族传统文化精髓___二十四孝 ※
    Microsoft 技术与安全大会
    Linux的用户和用户组管理
    vsftpd设置与使用总结
    MySQL与NoSQL——SQL与NoSQL的融合
    linux下查看用户及用户组的方法
    软件系统开发中的数据交换协议
    Ubuntu实用简单的FTP架设
    淘宝网商品库优化实践访谈
    current attention url
  • 原文地址:https://www.cnblogs.com/iosdanran/p/4945646.html
Copyright © 2011-2022 走看看