关于iOS 网络请求的必须要了解一些基础知识。
一 :URL :统一资源定位符 简单粗暴的解释就是在茫茫人海怎么找到你的服务器
URL 包括三个部分:1.协议 (HTTP 或者HTTPS)2.主机地址或域名 3.资源路径
固定格式 协议://主机地址/路径 例子:https://github.com/AFNetworking/AFNetworking
二 :这里给个链接 自行阅读:HTTP 协议
iOS 的网络请求的方式一般现在就是两种方式,
第一种方式使用系统的类
NSURLConnection. (这个用起来没有NSURLSession没有方便,坑比较多)
NSURLSession. (如果不想使用第三方的东西,这个是一个不错的选择)
CFNetWork (系统的一个纯C 语言底层一个框架)
第二钟方式就是第三方框架
ASIHTTPRequest. (这个是对CFNetWork 的封装,非常强大,作者已经声明不在更新)
AFNetWorking. (国外的作者写的一个框架,维护者比较多,使用者也比较多 )
一般的公司中网络请求现在主流都是AFNetWorking.使用方法
//创建一个Session 对象
AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
//这个方法是设置你的请求的数据类型。AF默认为AFHTTPRequestSerializer;如果想修改为JSON就用AFJSONRequestSerializer 这个格式化器;
manager.requestSerialize =[AFJSONRequestSerializer serializer];
//声明一个你的Content-Type(MIME-Type) 这个就是要跟服务器沟通好,需要什么样的类型,就传什么样的类型,否则服务器那边是解析不了的,具体的看MIME-Type 类型这个是规定好的,用的时候找一下就好了(MIME-Type 还不是特别了解的看看我链接给发的HTTP协议)
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@ nil];
//responseSerializer这个响应的格式化器。看后台给返回的什么数据,一般就是JSON 数据,如果服务器返回的是其他的类型的:比如XML,那么需要修改为AFXMLParserResponseSerializer
manager.responseSerializer = [AFJSONResponseSerializer serializer];
刚开始的使用的时候可能就是上面的这些东西不太了解,请求跟响应设置好了应该没有什么问题了,接下来就是GET POST 请求了,还有上传 ,下载的问题 ,这个网上有很好的解释,不在赘述了。
网友评论