码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-05-09 06:04:38      阅读:333      评论:0      收藏:0      [点我收藏+]

标签:style   code   tar   ext   color   http   

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方法的参数。

 

ASIHTTPRequest框架使用(1)--发送同步请求,布布扣,bubuko.com

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

标签:style   code   tar   ext   color   http   

原文地址:http://www.cnblogs.com/yaoxc/p/3717934.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!