博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Get异步请求
阅读量:6087 次
发布时间:2019-06-20

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

1: 使用代理

        //1.delegate

        //创建url
     NSURL *url = [[NSURL alloc] initWithString:@"http:"];
//     创建request
     NSURLRequest *urlRequesr = [[NSURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];
//     发送异步请求
//     异步请求不知道什么时候获取到数据,delegate这种模式来创建,当获取到数据后,会自动调转到代理方法中
     [NSURLConnection connectionWithRequest:urlRequesr delegate:self];

#pragma mark - NSURLConnectionDataDelegate

    //请求出现错误
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    NSLog(@"%@", error);
}
//- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response
//{
//    
//}
    //请求收到回应(可以认为请求开始)
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"%@", response);
    self.mData = [NSMutableData data];
     
}
    //请求获取到数据
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    NSLog(@"%@", data);
        //网络上的数据以包得形式,一个包一个包得传递过来,需要把收到包数据整合到一起
    [_mData appendData:data];
}
    //请求完成
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    UIImage *image = [UIImage imageWithData:_mData];

    self.view.backgroundColor = [UIColor colorWithPatternImage:image];

}

2: 使用Block

  NSURL *url = [NSURL URLWithString:@""];

    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:urlRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        NSLog(@"%@", data);
        self.myData = data;
        [self readData];
    }];
- (void)readData {
    UIImage *image = [[UIImage alloc] initWithData:_myData];
    self.view.backgroundColor = [UIColor colorWithPatternImage:image];
}

 

转载于:https://www.cnblogs.com/tian-sun/p/4310511.html

你可能感兴趣的文章
话说区块链,它真的不是比特币
查看>>
展望VR AR 2017,旅游、营销以及家装行业或许会火一把
查看>>
“九”答不可 | 如何设计量子计算机?科学家称其速度存在理论上限
查看>>
蓝凌副总裁夏敬华:智明当下,慧看未来——移动互联下企业知识管理应用趋势...
查看>>
Mac下的SSH插件(默认自带)
查看>>
安卓应用安全指南 4.6.3 处理文件 高级话题
查看>>
独家专访阿里高级技术专家北纬:Dubbo开源重启半年来的快意江湖
查看>>
黑科技时代,不了解这些你就OUT了
查看>>
机器视觉中评价光源质量的指标
查看>>
AI为移动医疗APP加码
查看>>
Webpack 入门教程一
查看>>
Keras上的VGGNet、ResNet、Inception与Xception
查看>>
关于python的bottle框架跨域请求报错问题的处理
查看>>
dirname() 函数
查看>>
Fms3中client端与server端交互方式汇总
查看>>
SVG系列一
查看>>
VS2005环境下的DLL应用
查看>>
windows终止处理程序( __try __finally) 简单解析
查看>>
Configuring Default-network for EIGRP
查看>>
Redis集群部署文档(centos6系统)
查看>>