首页 > 代码库 > 开源类库之一 (ASIHTTPRequest)

开源类库之一 (ASIHTTPRequest)

ASIHTTPRequest虽然很久没有更新了,但是他仍然是一个非常流行的iOS平台网络通信类库,使用ASIHTTPRequest之后,大大简化了iOS平台的网络编程。其以方便的接口对同步、异步的网络传输进行了传输,将ASIHTTPRequest添加到自己的项目也非常方便,将类库中所有文件拷贝到一个文件夹中,然后将此文件夹添加到项目中,同时要添加如下图CFNetWork之下所示的类库,就可以使用ASIHTTPRequest了:

技术分享


使用ASIHTTPRequest步骤非常简答,在一般应用开发中,网络连接基本上使用的都是异步方式,下面简单演示一下最简单的异步通讯方法


[cpp] view plaincopy
  1. #import "ASIHTTPRequest.h"  
  2.   
  3. - (void) requestDataFromServer  
  4. {  
  5.     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];  
  6.     NSURL* url = [NSURL URLWithString: @"www.fakeurl.com"];  
  7.     ASIHTTPRequest* request = [ASIHTTPRequest requestWithURL: url];  
  8.     [request setTag: 1024];  
  9.     [request setTimeOutSeconds: 3];  
  10.     [request setAllowCompressedResponse:YES];  
  11.     [request setDelegate:self];  
  12.     [request startAsynchronous];  
  13.     [pool drain];  
  14. }  
  15.   
  16. - (void)requestFinished:(ASIHTTPRequest *)request  
  17. {  
  18.     NSString* rawString = [request responseString];  
  19.     if (request.tag == 1024) {  
  20.         //处理网络返回结果  
  21.      }   
  22. }  
  23.   
  24. - (void)requestFailed:(ASIHTTPRequest *)request  
  25. {  
  26.     if (request.tag == 1024) {  
  27.         //处理网络错误  
  28.      }   
  29. }   

注意上面的两个函数中,后面连个为ASIHTTPRequest的delegate函数,其声明类型不能改变,只要在生成ASIHTTPRequest时的deleage设成了self,那么最后返回结果,不管是成功调用还是网络失败,都会调用这两个函数中的对应的一个。

开源类库之一 (ASIHTTPRequest)