• ios-网络request请求


    1.同步请求
      NSMutableURLRequest*urlrequest=  [[NSMutableURLRequest alloc]init];
      [urlrequest setURL:url];
      [urlrequest setTimeoutInterval:60];
      [urlrequest setHTTPMethod:@"GET"];
      NSURLResponse *response;
      NSData *data= [NSURLConnection sendSynchronousRequest:urlrequest returningResponse:&response error:nil];
      UIImage *image = [UIImage imageWithData:data];
    此请求的请求数据是一张图片
    2.异步请求
     NSMutableURLRequest*urlrequest=  [[NSMutableURLRequest alloc]init];
        [urlrequest setURL:url];
        [urlrequest setTimeoutInterval:60];
        [urlrequest setHTTPMethod:@"GET"];
        NSOperationQueue *quence=[[NSOperationQueue alloc]init];
        [NSURLConnection sendAsynchronousRequest:urlrequest queue:quence completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
           UIImage *image= [UIImage imageWithData:data];
            dispatch_sync(dispatch_get_main_queue(), ^{//回到主线程上
                self.image=image;
            }); 
        }];
    2.2异步请求的另一种方式
    -(void) setImageWithURL1:(NSURL *)url{
        NSMutableURLRequest*urlrequest=  [[NSMutableURLRequest alloc]init];
        [urlrequest setURL:url];
        [urlrequest setTimeoutInterval:60];
        [urlrequest setHTTPMethod:@"GET"];
        self.data=[NSMutableData data];//新增的一个属性
        [NSURLConnection connectionWithRequest:urlrequest delegate:self];//异步请求
    }
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
        [_data appendData:data];
    }
    - (void)connectionDidFinishLoading:(NSURLConnection *)connection{
        UIImage *image=[UIImage imageWithData:_data];
        self.image=image;
    }
    //上面这2个方法是在主线程中监听的异步请求,所以最后的给UI给值的时候不用调用回到主线程中的那个方法

    总结:同步请求是在主线程中进行,异步是在多线程中进行,当然也可以在多开的线程中进行同步请求一个道理

    14年5月3号:异步请求一定是不在这个线程上,同步请求可以在这个线程上也可以不在这个线程上,比如开始一个线程在上面执行一个同步请求就达到来异步的效果。(md,突然写时间的时候,想着,如果n年后,n>20,看到这个笔记是个什么样的心得呢,20年后我的,你好,你儿子是叫李威仔吗,女儿是叫李薇薇吗)

    1.这里只记录一些学习笔记 2.这里只记录一些学习心得,如果心得方向有错,请留言 2.这里只记录一些日记(只为提升英语,暂时有点忙,等转行了开始写)
  • 相关阅读:
    fedora-coreos 试用podman
    博客主题更新了
    C stdarg.h:可变参数va_list、va_arg等宏的使用及原理简介
    静态、动态链接库的生成及使用
    notfastjson项目介绍
    The ANSI C Programming Language:C语言预处理机制
    语法分析:LL(1)语法分析的实现及扩展的巴科斯范式
    语法分析:LL(1)分析
    计算机系统基础:计算机系统概述
    计算机系统基础:数据的表示和存储
  • 原文地址:https://www.cnblogs.com/liyang31tg/p/3662651.html
Copyright © 2020-2023  润新知