• ASIHTTPRequest框架使用(1)--发送同步请求


    ASIHTTPRequest框架是优秀的第三方OC的HTTP框架,支持Mac OS X和iOS下得HTTP开发。

    具有如下优点:

    1、支持下载数据放在内存或本地文件

    2、容易访问请求和应答HTTP Header

    3、支持Cookie

    4、支持GZip请求或应答(?)

    5、支持缓存

    6、支持同步或异步请求

    7、支持HTTPs

    但是,ASIHTTPRequest不支持ARC。

    配置ASI框架:向项目中导入ASI框架之后,还要向工程中引入一些框架和类库:

    CFNetwork.framework,SystemConfiguration.framework, MobileCoreServices.framework,CoreGraphics.framework和libz.dylib
     
    发送同步请求:

    ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest。常用的是ASIHTTPRequest。

    ASIFormDataRequest是ASIHTTPRequest的子类,ASIFormDataRequest可以发送类似于HTML的表单数据,也可以上传数据,默认采用Post请求方式。

    ASIFormDataRequest和ASIHTTPRequest都可以进行同步和异步请求。

    1、发送 “同步、Get” 请求

    使用最基本请求类ASIHTTPRequest就可以了。

    - (void)startRequest

    {

      NSString *strUrl = [[NSString alloc] initWithFormat:@"http://iosbook3.com/service/mynotes/webservice.php?      email=%@&type=%@&action=%@",@"ios_yaoxinchao@163.com",@"JSON",@"query"];   

      NSURL *url = [NSURL URLWithString:[strUrl URLEncodedString]];  

      ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

      //  发送同步请求

      [request startSynchronous];

      NSLog(@"请求完成....");

      NSError *error = [request error];

      if (!error)

      {

        NSString *response = [request responseString];

        NSData *data = [request responseData];        【1】

        NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

        。。。。

      }

    }

    【1】:调用请求对象的responseData方法获取从服务器端应答回来的结果,它返回值为NSData类型。如果想返回字符串,使用responseString方法。

    2、发送 “同步、Post” 请求

    发送Post方法请求,无论是同步还是异步请求,都是使用ASIFormDataRequest类。

    - (void)startRequest

    {

        NSString *strUrl = @"http://iosbook3.com/service/mynotes/webservice.php";  【1】

        NSURL *url = [NSURL URLWithString:[strUrl URLEncodedString]];

        ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

        //  设置Post方式的请求参数信息

        [request setPostValue:@"ios_yaoxinchao@163.com" forKey:@"email" ];  【2】

        [request setPostValue:@"JSON" forKey:@"type" ];                                 【3】

        [request setPostValue:@"query" forKey:@"action" ];                               【4】

        //  发送 "同步、Post" 请求

        [request startSynchronous]; 

        NSLog(@"请求完成....");

        NSError *error = [request error];

        if (!error)

        {

          NSString *response = [request responseString];

          NSData *data = [request responseData];        

          NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

          。。。。

        }

    }

    【1】:可以看出,URL后没有跟请求参数,不再是Get请求了。

    【2】、【3】、【4】:设置Post方法的参数。

  • 相关阅读:
    CentOS系统更换软件安装源aliyun的
    判断手机电脑微信 js
    MFC HTTP
    阿里云 镜像 源 debian
    debian root 可以远程登陆
    java-dispose方法
    深入理解JAVA序列化
    Junit单元测试--01
    算法期末考试
    矩阵连乘 动态规划
  • 原文地址:https://www.cnblogs.com/yaoxc/p/3717934.html
Copyright © 2020-2023  润新知