与时俱进的IT

UI(二十八)网络编程

2018-07-30  本文已影响2人  社会主义顶梁鹿

IOS9 网络编程的重大改变:

 (1)

 NSURLConnection:IOS9之前使用 之后弃用 

 NSURLSession:IOS7.0 之后出来 IOS9只能使用这个类

 (2)后台服务器传输协议由 HTTP 改成 HTTPS。

  IOS9之后需要添加下面的东西

  IOS开发->info.plist->App Transpart Security Settings->Allow Arbitrary Loads ->YES

 一、URL

 1、概念:

Uniform Resource Locator 统一资源定位符

 2、结构

 URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名

 https://www.baidu.com/img/bd_logo1.png

 可以通过URL找到服务器中的文件

注意:URL里面不要出现中文字符 不支持->需要转码

 二、HTTP 

 1、全称:Hypertext Transfer Protocol 超文本传输协议

  HTTPS (全称:Hyper Text Transfer Protocol over Secure Socket Layer)是以安全为目标的HTTP通道,简单讲是HTTP的安全版

 2、通讯流程:

 首先客户端发送一个请求(request)给服务器,服务器在接收到这个请求后将生成一个响应(response)返回给客户端

 *发送一个请求没有任何回应

  (1)没联网

  (2)请求内容错误 URL

 *发送一个请求有回应但是没能得到请求的内容

  (1)服务器需要的内容与发送请求的内容不匹配 一般在回应中有错误码

  (2)服务器需要的内容与发送请求的时候未发送

  (3)后台服务器代码的问题

 一般在回应中有错误码:code:xxx

(300-3007表示的意思是:要完成请求,您需要进一步进行操作。通常,这些状态代码是永远重定向的。

 300(多种选择) 服务器根据请求可执行多种操作。服务器可根据请求者 来选择一项操作,或提供操作列表供其选择)

 *常用的请求方法:

 (1)get 数据写在URL后面

 (2)post 写在请求体里面 post传递的数据量没有限制(具体还得看服务器的处理能力)

 三、request

 1、概念:一个URL加载的请求 NSURLRequest

当需要请求头的时候 需使用可变的request 即NSMutableURLRequest 添加表头

 2、在请求中需要的两个基本元素

 (1)要加载的URL

 (2)加载的方式(默认的是get)

 3、两类请求方法

 (1)不考虑缓存策略

 1)+ (instancetype)requestWithURL:(NSURL *)URL;

 2)- (instancetype)initWithURL:(NSURL *)URL

 (2)考虑缓存策略 超时限制

 1)+ (instancetype)requestWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval

 2)- (instancetype)initWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval

*cachePolicy 缓存方式

*timeoutInterval 超时的时间间隔 s

 3) NSURLRequestUseProtocolCachePolicy, 默认的缓存策略 如果缓存不存在 直接从服务端获取 如果缓存存在 会根据response中的Cache-Control字段判断下一步操作

NSURLRequestReloadIgnoringCacheData 忽略缓存 重新请求

NSURLRequestReturnCacheDataElseLoad 有缓存就使用 不管其有效性 没有缓存就重新请求

NSURLRequestReturnCacheDataDontLoad 有缓存就用缓存 没有缓存就不发请求 当做请求出错处理(用于离线模式)

上一篇 下一篇

猜你喜欢

热点阅读