iOS

iOS 网络请求

2017-07-24  本文已影响131人  Lifg

关于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 请求了,还有上传 ,下载的问题 ,这个网上有很好的解释,不在赘述了。

上一篇下一篇

猜你喜欢

热点阅读