网络框架

iOS网络编程之三——NSURLConnection的简单使用

╄→гoц情女王★ 提交于 2021-02-03 07:05:49
iOS网络编程之三——NSURLConnection的简单使用 一、引言 在iOS7后,NSURLSession基本代替了NSURLConnection进行网络开发,在iOS9后,NSURLConnection相关方法被完全的弃用,iOS系统有向下兼容的特性,尽管NSURLConnection已经被弃用,但在开发中,其方法依然可以被使用,并且如果需要兼容到很低版本的iOS系统,有时就必须使用NSURLConnection类了。 二、使用NSURLConnection进行同步请求 对于网络请求分为同步和异步两种,同步是指在请求结果返回之前,程序代码会卡在请求处,之后的代码不会被执行,异步是指在发送请求之后,一边在子线程中接收返回数据,一边执行之后的代码,当返回数据接收完毕后,采用回调的方式通知主线程做处理。 使用如下方法进行NSURLConnection的同步请求: NSURL * url = [NSURL URLWithString:@"http://www.baidu.com"]; NSURLRequest * request = [NSURLRequest requestWithURL:url]; NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error

Retrofit2.0结合RxAndroid实现二次封装

你说的曾经没有我的故事 提交于 2020-04-06 19:47:13
实Retrofit2.0结合RxAndroid现网络请求网上有很多文章,这里不再详细介绍 Retrofit基本是一个业务请求,对应一个接口方法,因为其返回值不支持泛型,只能是具体的类。好处是结构清楚,缺点是业务请求就耦合的网络接口,如果以后想分离网络就很麻烦。而且开发人员还要同时定义每个业务的请求接口,和具体的请求方式,对于大型APP,工作量很大,而且容易出错。 本文主要介绍如何对Retrofit2.0+RxAndroid封装成网络层,对业务使用隔离,使用者不需要知道网络框架使用的是哪种技术,只需要使用通用的接口,即可实现不同业务请求的调用。 下面这种泛型返回类型,Retrofit在运行是会报错,啃爹啊。 @GET(ACTION_URL) <T extends BaseResult> Observable<T> requestNetwokData(@Query("a") String type, @QueryMap Map<String, String> options); 下面是变相的实现方式,基本技术不变,只是在服务器返回数据时做了一个简单的处理。 1. 返回的数据使用OKHttp原始的类型ResponseBody 2. 数据返回后,通过RxAndroid的map方法,强制根据调用者要求的类型进行转换 @GET(ACTION_URL) Observable

(转)Twisted :第一部分:初步认识Twisted

丶灬走出姿态 提交于 2019-11-30 16:41:56
前言 : 最近有人在Twisted邮件列表中提出诸如”为任务紧急的人提供一份Twisted介绍”的的需求。值得提前透露的是,这个序列并不会如他们所愿.尤其是介绍Twisted框架和基于Python 的异步编程而言,可能短时间无法讲清楚。因此,如果你时间紧急,这恐怕不是你想找的资料。 我相信如果对异步编程模型一无所知,快速的介绍同样无法让你对其有所理解,至少你得稍微懂点基础知识吧。我已经用Twisted框架几年了,因此思考过我当初是怎么学习它(学得很慢)并发现学习它的最大难度并不在Twisted本身,而在于对其模型的理解,只有理解了这个模型,你才能更好去写和理解异步程序的代码。大部分Twisted的代码写得很清晰,其在线文档也非常棒(至少在开源软件这个层次上可以这么说)。但如果不理解这个模型,不管是读Twisted源码还是使用Twisted的代码更或者是相关文档,你都会感到非常的伤脑筋。 因此,我会用前面几个部分来介绍这个模型以让你掌握它的机制,稍后会介绍一下Twisted的特点。实际上,一开始,我们并不会使用Twisted,相反,会使用简单的Python来说明一个异步模型是如何工作的。我们在初次学习Twisted的时,会从你平常都不会直接使用的底层的实现讲起。Twisted是一个高度抽象的体系,因此在使用它时,你会体会到其多层次性。但当你去学习尤其是尝试着理解它是如何工作时

iOS网络编程之二——NSURLSession的简单使用

僤鯓⒐⒋嵵緔 提交于 2019-11-29 23:14:39
iOS网络编程之二——NSURLSession的简单使用 一、NSURLSession简介 在iOS7之后,NSURLSession作为系统推荐使用的HTTP请求框架,在进行前台请求的情况下,NSURLSession与NSURLConnection并无太大差异,对于后台的请求,NSURLSession更加灵活的优势就将展现无遗。 1.NSURLSession集合的类型 NSURLSession类提供3中Session类型: Default类型:提供前台请求相关方法,支持配置缓存,身份凭证等。 Ephemeral类型:即时的请求类型,不使用缓存,身份凭证等。 Background:后台类型,支持在后台完成请求任务。 2.NSURLSession任务的类型 在NSURLSession中添加的请求任务支持3中类型: 数据任务:使用NSData对象进行数据的发送和获取,一般用于短数据的任务。 下载任务:从文件下载数据,支持后台下载。 上传任务:以文件的形式上传数据,支持后台上传。 二、创建并配置NSURLSession 通过NSURLSessionConfiguration类对象对NSURLSession进行配置与创建,创建和配NSURLSession的示例代码如下: //默认类型的 NSURLSessionConfiguration * defaultConfiguration =