IOS网络编程笔记(1)
来源:互联网 发布:程序员简历表格 编辑:程序博客网 时间:2024/05/06 06:18
网络编程
C/S,B/S系统架构。
手机客户端
Web App Html5
C/S:客户/服务器
服务器端开发语言:
java
.net
C/C++
php
python
Ruby
Node.js javascript
文本数据:JSON数据、XML数据。
图片数据:
音频数据:
视频数据:
数据通讯:
HTTP协议的基本概念:
·全称“超文本传输协议”,浏览器和服务器之间的通信规则
·HTTP协议永远是客户端发起请求,客户端回送响应。
客户端——>服务器端的数据格式:1.JSON 2.XML(使用较少)3.key1=value1&key2=value2......(轻量级)
服务器端——>客户端数据格式:1.JSON 2.XML
GET请求:是向服务器索取的一种请求方式
POST请求:是向服务器提交数据的一种请求方式(只有POST才有请求体),如用户登陆。请求的参数有两种形式:1.放在URL后面,2.放在请求体中。
HTTP请求
HTTP请求主要由两部分组成:http请求头,http请求体。
POST请求才有请求体。
HTTP响应
HTTP响应头:
HTTP响应内容:
HTTP响应码:
200表示成功
404页面不存在
500以上响应码表示服务器程序出现问题
访问网络的基本概念
#访问网络的方式
*同步请求:数据的请求过程是在主线程来执行的。网络数据加载需要一个时间,这样的话会堵塞主线程。
*异步请求:数据的请求过程在多线程中执行。
*同步请求无法取消,异步请求过程中可以取消。同步请求无法监听加载进度,异步请求可以监听。
#网络请求组件
CFNetwork是一种底层的高性能架构,他是基于BSD sockets的基础上做了拓展。
NSURLConnection组件
#访问网络的基本流程:
1.构造NSURL实例(地址);
2.构造请求NSURLRequest;
3.构造启动链接NSURLConnection;
4.发送同步请求/异步请求;
5代理对象实现协议,用于监听通讯事件。
#NSURL释义和常用方法
* NSURL实例包装了一个地址信息,可以使本地地址,也可以是网络地址。
*常用方法
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com:8080/search?id=1"]; NSLog(@"Scheme:%@",[url scheme]);//Scheme:http NSLog(@"Host:%@",[url host]);//Host:www.baidu.com NSLog(@"AbsoluteString:%@",[url absoluteString]);//AbsoluteString:http://www.baidu.com:8080/search?id=1 NSLog(@"RelativePath:%@",[url relativePath]);//RelativePath:/search NSLog(@"Port:%@",[url port]);//Port:8080 NSLog(@"Path:%@",[url path]);//Path:/search NSLog(@"PathComponents:%@",[url pathComponents]);//PathComponents:("/",search) NSLog(@"Query:%@",[url query]);//Query:id=1
#NSURLRequest不可变请求对象,不能动态添加请求信息。
NSURLRequest包装了网络请求的信息。
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com:8080/search?id=1"];NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
#NSURLRequest的缓存策略:
NSURLRequest的cachePolicy属性可以设置缓存的的策略。这是一种内存缓存,非硬盘缓存。
使用缓存的目的是为了使用的应用程序能更快的响应用户输入,使程序高效的运行。有的时候我们需要将远程web服务器获得的数据缓存起来,减少对同一个url的多次请求。
cachePolicy支持的缓存策略:
·NSURLRequestUseProtocolCachePolicy 默认的缓存策略,要在协议的实现方法中指定缓存逻辑
·NSURLRequestReloadIgnoringCacheData 忽略缓存从原始地址下载
·NSURLRequestReturnCacheDataElseLoad 没有缓存时从原始地址下载
·NSURLRequestReturnCacheDataDontLoad 只使用缓存,如果不存在缓存,请求失败,适用于没有建立 网络连接离线模式
·NSURLRequestReloadIgnoringLocalAndRemoteCacheData 忽略本地和远程的缓存数据,直接从原始 地址下载,与NSURLRequestReloadIgnoringCacheData类似
·NSURLRequestReloadRevalidatingCacheData 验证本地数据与远程数据是否相同,如果不同则下载远 程数据,否则使用本地数据
NSMutableURLRequest实例可以对请求信息重新设置
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com:8080/search?id=1"]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; [request setTimeoutInterval:60]; [request setHTTPMethod:@"GET"]; [request setHTTPBody:_data]; [request setValue:@"tttt" forHTTPHeaderField:@"cookes"];
- IOS网络编程笔记(1)
- IOS网络笔记--多线程编程1
- iOS网络编程学习笔记---1
- IOS网络编程笔记(2)
- iOS笔记-(网络编程之网络请求步骤)
- iOS 网络编程(1)
- 网络编程笔记(1)
- iOS网络编程 - 1
- python网络编程学习笔记(1)--网络编程背景
- 网络编程笔记1
- 网络编程笔记<1>
- 网络编程笔记1
- iOS学习笔记07—网络编程
- iOS学习笔记:网络编程总结
- iOS学习之网络编程(1)
- Unix网络编程学习笔记(1)
- 网络编程学习笔记(1)
- linux网络编程笔记(1)
- hdu4735 Little Wish~ lyrical step~ DLX重复覆盖
- linux java 配置 含环境变量
- 把border-left-color转换成BorderLeftColor
- POJ1611——The Suspects
- JDK1.8垃圾回收
- IOS网络编程笔记(1)
- 找出数组中最大的数字和位置
- hadoop ssh配置免密码登陆
- Android 屏幕的适配
- 可兼容所有浏览器的“收藏本站”、“设为首页”js代码
- find 命令搜索符号链接文件夹的方法
- Cocos2d-x 3.0 beta 中加入附加项目,解决无法打开包括文件:“extensions/
- 环境变量:JAVA_HOME、PATH 和 CLASSPATH
- the zipalign tool was not found in the sdk