1. 程式人生 > >ASIHTTPRequest框架的簡單使用

ASIHTTPRequest框架的簡單使用

依賴 復雜 esp 進度 ear ice mutable 壓縮 word

ASIHttpRequest是一款及其強勁的HTTP訪問開源項目。讓簡單的API完畢復雜的功能,如:異步請求,隊列請求,GZIP壓縮。緩存,斷點續傳,進度跟蹤,上傳文件。HTTP認證。在新版本號中,還增加了Object-C閉包Block的支持,讓我們的代碼更加精簡靈活。

依賴的5個庫:

CFNetwork

SystemCorfiguration

MobileCoreServices

和libz、libxml2

ASIHttpRequest庫內容能夠到 Github 開源網去下載


一、ASIHttpRequest同步請求


//

同步請求

- (void)synchronous:(NSURL *)url

{

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

[request setRequestMethod:@"GET"];

[request setTimeOutSeconds:60];


//設置請求頭

// [request setRequestHeaders:<#(NSMutableDictionary *)#>]

//設置cookies 保存到本地 設置登錄password 下次能夠不用登陸

// [request setRequestCookies:<#(NSMutableArray *)#>]

//發送同步請求

[request startSynchronous];

NSError *error = request.error;

if(error == nil)

{

//請求下來的數據

NSData *data = request.responseData

;

UIImage *image = [UIImage imageWithData:data];

self.image = image;

}

else

{

NSLog(@"請求網絡出錯: %@",error);

}

}



//異步請求

- (void)aSynchronous:(NSURL *)url

{

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

[request setRequestMethod:@"GET"];

[request setTimeOutSeconds:60];

//1.使用delegate

// request.delegate = self;

//2.使用block

[request setCompletionBlock:^{

//網絡請求完畢調用的block

NSData *data = request.responseData;

self.image = [UIImage imageWithData:data];

}];

[request setFailedBlock:^{

//網絡請求失敗調用的block

}];

//////////////////////////////////////////////

//發送異步請求

[request startAsynchronous];

}

#pragma mark - ASIHTTPRequestdelegate

- (void)requestFinished:(ASIHTTPRequest *)request

{

NSData *data = request.responseData;

self.image = [UIImage imageWithData:data];

}

- (void)requestFailed:(ASIHTTPRequest *)request

{

NSLog(@"%@",request.error);

}



ASIHTTPRequest框架的簡單使用