第十六讲 网络编程
一、协议的概念
⼆、iOS平台如何实现HTTP协议请求
三、服务器接⼝的简单介绍
⼀、HTTP协议的概念
HTTP协议,Hyper Text Transfer Protocol(超⽂本传输协议)是用于从万维⺴服务器传送超⽂本到本地浏览器的传输协议,HTTP是一个应⽤层协议,由请求和响应构成,是⼀个标准的客户端服务器模型。
了解 C/S 模式
Client 和 Server 常常分别处在相距很远的两台计算机上,Client程序的任务是将⽤户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显⽰给⽤户;Server程序的任务是接收客户程序提出的服务请求,进⾏相应的处理,再将结果返回给客户程序
⼆、iOS实现⺴络编程
HTTP协议请求如何实现
⺴络请求地址对象 NSURL的作用及用法
⺴络请求对象 NSURLRequest、NSMutableURLRequest的作⽤及⽤法
⺴络链接对象 NSURLConnection 的作⽤及⽤法
⺴络链接协议 NSURLConnectionDelegate 的作⽤及⽤法
⺴络请求数据信息 NSURLResponse 的作⽤及⽤法
NSURL
url,统⼀资源定位符,也被称为网址,因特⺴上标准的资源⺴址
一个典型的url:http://lily:123456@www.google.com/search?hl=en&source=hp&q=mysql&aq=f&oq=&aqi=g10#page
url 的符语法:协议://授权/路径?查询
协议: ftp://(文件传输协议) http://(超⽂本传输协议)
https://(安全超文本传输协议) file://(本地文件协议)
url作为网址字符串包含很多请求参数,NSURL对网址字符串进行封装,
可以使用NSURL对象获取相应的参数。
absoluteString: http://lily:123456@www.google.com/search?hl=en&source=hp&q=mysql&aq=f&oq=&aqi=g10#page
scheme: http
host: www.google.com
user: lily
password: 123456
port: 8080
query: hl=en&source=hp&q=mysql&aq=f&oq=&aqi=g10
请求⽅式
GET
POST
相同点:都能给服务器传输数据
不同点:
1、给服务器传输数据的⽅式:
GET:通过⺴址字符串。
POST:通过data
2、传输数据的⼤小:
GET:⺴址字符串最多255字节。
POST:使⽤NSData,容量可能超过1G
3、安全性:
GET:所有传输给服务器的数据,显⽰在⺴址⾥,类似于密码的明⽂输入,直接可⻅。
POST:数据被转成NSData(二进制数据),类似于密码的密⽂输入,⽆法直接读取。
同步连接:程序容易出现卡死现象
异步连接:等待数据返回。
异步联接有两种实现⽅式:
设置代理,接收数据
实现block
同步连接 **两个星号是取指针地址
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error;
异步连接(代理)
设置 NSURLConnection 代理
实现相应的代理⽅方法:开始响应接收数据、接收数据、成功、失败!
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
异步联接(block)
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse * response, NSData * data, NSError * connectionError))handler
NSURLResponse
根据网络请求协议,封装了服务器返回数据的部分信息。服务器响应⺴络请求后,返回数据的部分信息及数据本⾝。
expectedContentLength
suggestedFilename
MIMEType
textEncodingName
URL
NSHTTPURLResponse
NSURLResponse 的⼦类,封装有关HTTP协议的响应信息。存储了HTTP协议的响应头信息,状态码。
allHeaderFields
statusCode
如果网络请求时使用 HTTP 协议,NSURLResponse 就是NSHTTPURLResponse
三、服务器接口的简单介绍
PHP 接口的简单实现⺴络请求⽅式分为:GET、POST,是由服务器的实现⽅式决定,分为:
GET
POST
GET 或 POST
服务器端 PHP 简单接⼝
PHP 中使用不同的函数获取数据,⽀持不同的请求⽅式:
GET 请求:使⽤ $_GET[“key"] 获取数据⺴址中的数据
POST 请求:使⽤ $_POST[“key"] 获取上传 data 中的数据
GET、POST 请求:使⽤ $_REQUEST[“key"] 获取数据
完成与 PHP 接⼝的交互
在 iOS 平台使⽤ NSURL、NSURLRequest等对象完成与接⼝的交互
总结
GET、 POST是请求方式
同步、异步是连接方式
⺴络请求的步骤:
1、NSURL;
2、NSURLRequest;
3、NSURLConnection;
4、处理Error 或者返回数据
一、协议的概念
⼆、iOS平台如何实现HTTP协议请求
三、服务器接⼝的简单介绍
⼀、HTTP协议的概念
HTTP协议,Hyper Text Transfer Protocol(超⽂本传输协议)是用于从万维⺴服务器传送超⽂本到本地浏览器的传输协议,HTTP是一个应⽤层协议,由请求和响应构成,是⼀个标准的客户端服务器模型。
了解 C/S 模式
Client 和 Server 常常分别处在相距很远的两台计算机上,Client程序的任务是将⽤户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显⽰给⽤户;Server程序的任务是接收客户程序提出的服务请求,进⾏相应的处理,再将结果返回给客户程序
⼆、iOS实现⺴络编程
HTTP协议请求如何实现
⺴络请求地址对象 NSURL的作用及用法
⺴络请求对象 NSURLRequest、NSMutableURLRequest的作⽤及⽤法
⺴络链接对象 NSURLConnection 的作⽤及⽤法
⺴络链接协议 NSURLConnectionDelegate 的作⽤及⽤法
⺴络请求数据信息 NSURLResponse 的作⽤及⽤法
NSURL
url,统⼀资源定位符,也被称为网址,因特⺴上标准的资源⺴址
一个典型的url:http://lily:123456@www.google.com/search?hl=en&source=hp&q=mysql&aq=f&oq=&aqi=g10#page
url 的符语法:协议://授权/路径?查询
协议: ftp://(文件传输协议) http://(超⽂本传输协议)
https://(安全超文本传输协议) file://(本地文件协议)
url作为网址字符串包含很多请求参数,NSURL对网址字符串进行封装,
可以使用NSURL对象获取相应的参数。
absoluteString: http://lily:123456@www.google.com/search?hl=en&source=hp&q=mysql&aq=f&oq=&aqi=g10#page
scheme: http
host: www.google.com
user: lily
password: 123456
port: 8080
query: hl=en&source=hp&q=mysql&aq=f&oq=&aqi=g10
请求⽅式
GET
POST
相同点:都能给服务器传输数据
不同点:
1、给服务器传输数据的⽅式:
GET:通过⺴址字符串。
POST:通过data
2、传输数据的⼤小:
GET:⺴址字符串最多255字节。
POST:使⽤NSData,容量可能超过1G
3、安全性:
GET:所有传输给服务器的数据,显⽰在⺴址⾥,类似于密码的明⽂输入,直接可⻅。
POST:数据被转成NSData(二进制数据),类似于密码的密⽂输入,⽆法直接读取。
同步连接:程序容易出现卡死现象
异步连接:等待数据返回。
异步联接有两种实现⽅式:
设置代理,接收数据
实现block
同步连接 **两个星号是取指针地址
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error;
异步连接(代理)
设置 NSURLConnection 代理
实现相应的代理⽅方法:开始响应接收数据、接收数据、成功、失败!
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
异步联接(block)
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse * response, NSData * data, NSError * connectionError))handler
NSURLResponse
根据网络请求协议,封装了服务器返回数据的部分信息。服务器响应⺴络请求后,返回数据的部分信息及数据本⾝。
expectedContentLength
suggestedFilename
MIMEType
textEncodingName
URL
NSHTTPURLResponse
NSURLResponse 的⼦类,封装有关HTTP协议的响应信息。存储了HTTP协议的响应头信息,状态码。
allHeaderFields
statusCode
如果网络请求时使用 HTTP 协议,NSURLResponse 就是NSHTTPURLResponse
三、服务器接口的简单介绍
PHP 接口的简单实现⺴络请求⽅式分为:GET、POST,是由服务器的实现⽅式决定,分为:
GET
POST
GET 或 POST
服务器端 PHP 简单接⼝
PHP 中使用不同的函数获取数据,⽀持不同的请求⽅式:
GET 请求:使⽤ $_GET[“key"] 获取数据⺴址中的数据
POST 请求:使⽤ $_POST[“key"] 获取上传 data 中的数据
GET、POST 请求:使⽤ $_REQUEST[“key"] 获取数据
完成与 PHP 接⼝的交互
在 iOS 平台使⽤ NSURL、NSURLRequest等对象完成与接⼝的交互
总结
GET、 POST是请求方式
同步、异步是连接方式
⺴络请求的步骤:
1、NSURL;
2、NSURLRequest;
3、NSURLConnection;
4、处理Error 或者返回数据