博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASIHttpRequest 使用理解
阅读量:6488 次
发布时间:2019-06-24

本文共 2650 字,大约阅读时间需要 8 分钟。

开源库:ASIHttpRequest

ASIHttpRequest 下载网址:http://github.com/pokeb/asi-http-request

 

依赖的5个库文件:CFNetwork, SystemConfiguration,MobileCoreServices,和libz , libxml2

 

 

 //通过类方法来控制队列的执行个数,但是它一旦发送请求会被立刻执行,不能进行逻辑的控制

    [ASIHTTPRequest sharedQueue].maxConcurrentOperationCount = 1;

    //请求队列的初始化

   // self.queue = [ASINetworkQueue queue];

    

    //并发执行的个数

   // self.queue.maxConcurrentOperationCount = 1;

 

//让队列执行下去,创建队列可以有我们控制他的执行逻辑顺序

 

    //[self.queue go];

 

//发送异步请求

-(void)aSynchronous:(NSURL *)url

{

    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

    [request setRequestMethod:@"GET"];

    [request setTimeOutSeconds:60];

    

    //发送异步请求代理

   // request.delegate = self;

    

    //请求数据完成的时候调用Block

    [request setCompletionBlock:^{

        NSData *data = request.responseData;

        UIImage  *image = [UIImage imageWithData:data];

        self.image = image;

        

        if (request.didUseCachedResponse) {

            NSLog(@"来至于缓存");

        }else {

            NSLog(@"是来至网络");

        }

    }];

    

    //请求数据失败调用Block

    [request setFailedBlock:^{

        NSLog(@"请求数据失败");

    

    }];

    

    //------------------------设置缓存策略-----------

    NSString *cachePath = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents"];

    

    ASIDownloadCache *cache = [[ASIDownloadCache alloc] init];

    [cache setStoragePath:cachePath];

     cache.defaultCachePolicyASIOnlyLoadIfNotCachedCachePolicy;

    

    //这会在每一次绘画的时候清除上一次存储的

    request.cacheStoragePolicy = ASICacheForSessionDurationCacheStoragePolicy;

    

    //这里创建持久缓存,每次要调用时直接从内存中调用

    //request.cacheStoragePolicy = ASICachePermanentlyCacheStoragePolicy;

   // request.downloadCache = cache;

    

    //开始异步请求

    [request startAsynchronous];

    

    

    

    //将请求添加到队列里

    //通过句柄来设置获取实例对象

//    AppDelegate  *appDelegate = [UIApplication sharedApplication].delegate;

//    [appDelegate.queue addOperation:request];

    

 

}

 

//发送同步请求

-(void)synchronous:(NSURL *)url

{

  //  ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

    [request setRequestMethod:@"GET"];

    [request setTimeOutSeconds:60];

    

    //设置请求头

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

    

    //设置Cookier

    //    [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);

    }

 

 

}

 

#pragma mark ---aSynchronous delegate

 

//完成异步请求

- (void)requestFinished:(ASIHTTPRequest *)request

{

    //获取数据

   NSData *data = request.responseData;

    

    UIImage *image = [UIImage imageWithData:data];

    

    self.image = image;

}

 

//异步请求失败

- (void)requestFailed:(ASIHTTPRequest *)request

{

    NSError *error = request.error;

    NSLog(@"异步请求失败:%@",error);

}

其他方法:

 

转载于:https://www.cnblogs.com/meixian/p/5371119.html

你可能感兴趣的文章
实现拖动文件到窗体(控件)
查看>>
对 sql server 数据库的备份进行加密
查看>>
YY博客园UML时序图之博客模块
查看>>
《深入浅出 Java Concurrency》—锁紧机构(一)Lock与ReentrantLock
查看>>
Android Studio开发第二篇创建新项目
查看>>
动画(Animation) 它 (闪烁、左右摇摆、跷跷板等功效)
查看>>
最简单的历史Hibernate获得短暂的
查看>>
CSS3系列三(与背景边框相关样式 、变形处理、动画效果)
查看>>
Freemarker-2.3.22 Demo - No01_获取模板并直接输出
查看>>
概率论机器学习的先验知识(上)
查看>>
[老老实实学WCF] 第六篇 元数据交换
查看>>
oracle 11g密码永不过期
查看>>
Nginx+Keepalived主备切换(包含nginx服务停止)
查看>>
single-row function和muti-row function
查看>>
Win7版IE10浏览器正式版官方下载地址
查看>>
【linux高级程序设计】(第十三章)Linux Socket网络编程基础 4
查看>>
android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)...
查看>>
hdu 5392 Infoplane in Tina Town(数学)
查看>>
Android IOS WebRTC 音视频开发总结(三九)-- win10升级为何要p2p
查看>>
Class create, device create, device create file【转】
查看>>