ASIHTTPRequest框架的簡單使用
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 *)#>]
// [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框架的簡單使用