美文网首页
网络编程一

网络编程一

作者: Sweet苗 | 来源:发表于2016-10-30 12:59 被阅读31次

网络编程一

数据的传输

1、服务器的数据是分成一个个单个的数据包传入客户端

2、客户端与服务器做数据传输,数据必须约定使用同一种格式

HTTP协议的概念

1、全称“超文本传输协议”,浏览器和服务器之间的通信规则

2、HTTP协议永远都是客户端发起请求,服务器回送响应

3、客户端发送一个HTTP请求,是向服务器提交了一个HTTP请求包

4、服务器收到请求之后,向客户端回应一个HTTP响应包

HTTP的请求方式:GET请求和POST请求

HTTP——请求包结构:请求头、请求体

GET:url、请求头

POST:url、请求头、请求体

HTTP的响应包结构:响应头、响应体

HTTP响应有个状态码,200为成功,404未找到页面

数据格式:JSON(主要)、XML

响应头中Content-Type表示响应体中数据的类型

主要类型:text/html、application/json、text/json、text/xml、image/jpeg

NSURLSession的相关使用

(可以参考代码:UI学习—-UI高级—-07网络编程—-代码—-01)

session网络会话

//1 URL (定位资源)

//2 URLRequest (配置请求:url请求头[请求体])

//请求方式:默认是get请求

//3 session (会话)<默认发起的是异步的网络请求>

//4 task (任务)

//(1)解析错误

//(2)查看状态码

//(3)解析data数据

//(4)转换成model

//(5)显示在UI界面上

//5 resume (执行任务)

[task resume];//resume:恢复

NSURLRequest

(可以参考代码:UI学习—-UI高级—-07网络编程—-代码—-02)

1、NSURLRequest用于存储客户端发送给服务器的数据包信息和请求设置

2、NSURLRequest只有很少的基本设置选项,我大部分使用其子类:NSMutableURLRequest

3、NSURLRequest (url请求头请求体[post]请求方式缓存策略...)

requestWithURL:url

cachePolicy:缓存策略

timeoutInterval:超时的时间

{NSURLRequestUseProtocolCachePolicy:默认的协议缓存策略(首先判断是否有缓存,如果缓存没有,直接从服务器获取;如果有缓存,根据响应中的cache-control中的一个字段判断,询问服务器数据是否有更新,如果有更新,重新请求服务器)}

//NSURLRequest *request = [NSURLRequest requestWithURL:urlcachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:120];

NSURLSessionConfiguration

1、一个Session可以发起的多个网络请求任务(Task)

2、三种类型的任务(Task):

2.1数据任务:数据任务擅长处理小且频繁的应用程序与服务器之间的请求,例如:请求JSON数据,因为数据任务不会将数据存储到磁盘文件中,所以不支持后台Session

2.2下载任务:以文件的形式接收数据,可以在程序没有运行时进行后台下载

2.3上传任务:以文件的形式发送数据,可以在程序没有运行时进行后台上传

3、session(可以参考代码:UI学习—-UI高级—-07网络编程—-代码—-03)

//(1)使用默认的session

//NSURLSession *session = [NSURLSessionsharedSession];

//(2)自定义的session

/*

+defaultSessionConfiguration用于创建默认类型的Session对象

+ephemeralSessionConfiguration用于创建临时类型的Session对象

+backgroundSessionConfiguration:(NSString*)identifier用于创建后台Session对象

identifier:作用标示后台的session,最好和App的bundle id相同

*/

NSURLSessionConfiguration *config =[NSURLSessionConfiguration defaultSessionConfiguration];

//配置属性

//配置缓存策略

config.requestCachePolicy =NSURLRequestUseProtocolCachePolicy;

//是否使用蜂窝数据

config.allowsCellularAccess = YES;

//...

[NSURLSession sessionWithConfiguration:config];

//task

//resume

NSURLResponse(可以参考代码:UI学习—-UI高级—-07网络编程—-代码)

//下载任务

NSURLSessionDownloadTask(可以参考代码:UI学习—-UI高级—-07网络编程—-代码—04)

相关文章

  • Android 网络编程 目录

    Android 网络编程 目录 Android 网络编程1 Http协议Android 网络编程2 Okhttp缓...

  • iOS关于HTTP协议和网络编程

    1.网络编程 1>什么是网络编程? 网络编程,是我们iOS程序开发者针对网络模块进行得代码编程,是作为一个资深开发...

  • Linux网络编程篇之ICMP协议分析及ping程序实现

    Linux网络编程系列: Linux网络编程篇之Socket编程预备知识 Linux网络编程篇之TCP协议分析及聊...

  • 网络编程(一)

    一、JDK中的网络类 通过java.net包中的类,java程序能够使用TCP或UDP协议在互联网上进行通讯; J...

  • 网络编程(一)

    入门 HTTP简介: HTTP:超文本传输协议,属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超...

  • 网络编程一

    网络编程一 数据的传输 1、服务器的数据是分成一个个单个的数据包传入客户端 2、客户端与服务器做数据传输,数据必须...

  • 网络编程(一)

    TCP协议与UDP协议是运输层的两个重要的协议,通过这两个协议来进行两台计算机通信. 套接字 soket是网络驱动...

  • 网络基本了解

    网络基础 问题:为什么要学习网络编程?(1)网络编程是一种实时更新应用数据的常用手段(2)网络编程是开发优秀网络应...

  • 网络编程

    网络编程 网络编程: 网络编程主要用于解决计算机与计算机(手机、平板..)之间的数据传输问题。 网络编程: 不需要...

  • 网络编程:程序员的基本功!教你如何自学C语言网络编程!

    悟空问答丨大学生编程指南 网络编程在编程体系里面占据很大一部分,在离不开网络的时代,网络编程重要性越来越强,网络编...

网友评论

      本文标题:网络编程一

      本文链接:https://www.haomeiwen.com/subject/nlrtettx.html