您的位置:首页 > 理论基础 > 计算机网络

基于OC的网络

2015-10-27 15:38 330 查看
网络

URL的基本格式 =协议://主机地址/路径 http://ios.itcast.cn/ios/images/content_25.jpg http://202.108.22.5/img/bdlogo.gif

协议:不同的协议 代表不同的资源查找方式资源传输方式

主机地址:存放资源的主机的IP地址(域名)

路径: 资源在主机中的具体位置

HTTP协议——超文本传输协议

规定客户端与服务器之间的数据传输格式

让客户端与服务器能有效的进行沟通

请求:

1.请求行:请求方法,请求资源路径,HTTP协议版本

2.请求头:对客户端的环境描述,客户端请求的主机地址

3.请求体:客户端发给服务器的具体数据

响应:
1.状态行:http协议版本,状态码(200-OK 404-Not Found 400-Bad Request 500-Internal Server Error),状态英文名称 

2.响应头:服务器的描述,返回数据的描述

3.实体内容:服务器返回给客户端的具体数据比如文件数据

URL里面不能包含中文所以字符串要提前转码
URLStr = [URLStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL * URL = [NSURL URLWithString:URLStr];

charles是一款代理服务器软件可以用来拦截网络请求

利用Charles能得知大部分公司的APP的数据来源和数据格式

通信过程:

1》请求

*客户端—》服务器

*请求的内容

a.请求行(请求方法、HTTP协议、请求资源路径)

b.请求头(描述客户端的信息)

c.请求体(POST请求才需要有、存放具体数据)

2》响应

*服务器——》客户端

*响应的内容

a.状态行(响应行、状态码)

b.响应头(服务器信息、返回数据的类型、返回数据的长度)

c.实体内容(响应体、返回给客户端的具体内容)

HTTP请求的方法:
1》GET

*参数都拼接在URL后面

*参数有限制
2》POST

*参数都在请求体

*参数没有限制

大文件下载(边下边写到本地沙盒路径中)

接收到服务器的响应的代理方法
NSFileHandle * writeHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];

下载数据更新的代理方法
[writeHandle seekToEndOfFile]; //每次都要把偏移量移到最后 进行追加数据
[writeHandle writeData:data];// 把每次下载的数据拼到文件中

数据加载完成的代理方法
[writeHandle close];

断点续传

通过设置请求头(从当前数据长度下载)
[request setValue:[NSString stringWithFortmat:@“bytes=%lld-”, currentLength] forHTTPHeaderField:@“Range”];

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 objective-c