博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios-网络request请求
阅读量:7105 次
发布时间:2019-06-28

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

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年后我的,你好,你儿子是叫李威仔吗,女儿是叫李薇薇吗)

转载于:https://www.cnblogs.com/liyang31tg/p/3662651.html

你可能感兴趣的文章
给视频加滚动字幕,给视频加字幕制作mv 录制的视频配背景音乐
查看>>
jquery获取复选框的值
查看>>
[zz]跳表(Skip List)的介绍以及查找插入删除等操作
查看>>
SAD和SATD的区别与几个名词解释
查看>>
C3P0配置实战
查看>>
Oracle问题之literal does not match format string
查看>>
shell的比较运算符
查看>>
ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆
查看>>
BZOJ1026: [SCOI2009]windy数[数位DP]
查看>>
Nginx的https配置记录以及http强制跳转到https的方法梳理
查看>>
android图像处理系列之三--图片色调饱和度、色相、亮度处理
查看>>
TensorFlow学习路径【转】
查看>>
JAVA设计模式之单例模式
查看>>
Ansible@一个高效的配置管理工具--Ansible configure management--翻译(五)
查看>>
为啥百度、网易、小米都用Python?Python的用途是什么?
查看>>
Linux系统IO分析工具之iotop常用参数介绍
查看>>
软件的依赖关系:类图关系:is-a has-a use-a
查看>>
2010年美国计算机图书市场报告四:编程语言
查看>>
ME525+ MB525 android2.3.4获取ROOT权限和关闭震动(振动反馈)的方法分享
查看>>
C函数适配器
查看>>