基于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”];
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”];