ios网络编程(入门级别)-- 基础知识
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ios网络编程(入门级别)-- 基础知识,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3717字,纯文字阅读大概需要6分钟。
内容图文
在学习ios的过程中,停留在UI控件很长时间,现在正在逐步的接触当中!!!!!!在这个过程中,小编学到了一些关于网络编程知识,并且有感而发,在此分享一下:
关于网络请求的重要性我想不用多说了吧!!!对于移动客户端来说,网络的重要性不言而喻,常见的网络请求有GET, POST,今天来看一下两种网络请求的实现方式。
第一部分 小编的理解
一、两种网络请求--POST请求与GET请求的异同(这里小编只讨论的是异步链接)
GET的语义是获取指定URL上的资源,将数据按照Variable = Value的形式,添加到action所指向的URL后面,并且两者使用"?"连接,各个变量之间使用"&"连接。
POST的语法是指定资源“追加/添加”资源,将数据放在数据体上,按照变量和值相对应的方式,传递到action所指向的URL。
1. GET请求的接口会包含参数部分,参数会作为网址的一部分,服务器地址与参数之间通过 ? 来间隔。POST请求会将服务器地址与参数分开,请求接口中只有服务器地址,而参数会作为请求的一部分,提交后台服务器。
2. GET请求参数会出现在接口中,不安全;而POST请求相对安全,所有数据对用户不可见。
3.GET传输的数据量小,主要受URL长度限制;而POST可大量传输数据,上传文件只能使用POST。
4.虽然GET请求和POST请求都可以用来请求和提交数据,但是一般的GET多用于从后台请求数据,POST多用于向后台提交数据。
二、 网络请求的步骤
1. 确定地址NSURL
2. 建立请求NSURLRequest
3. 建立并启动连接NSURLConnection
等待网络处理~~~~
4. 通过代理方法处理网络请求
遵守协议:NSURLConnectionDataDelegate
三、 网络代理方法
1. 接收到服务器的响应,服务器要传数据,客户端做接收准备
2. 接收服务器传输的数据,可能会多次执行
3. 接收数据完成,做后续处理
4. 服务器请求失败,原因很多(网络环境等等)
5. 向服务器发送数据,此方法仅适用于POST,尤其上传文件
四、 GET方法
在NSURL中,指定参数(如果有,也可以不指定参数),例如:http://www.baidu.com
五、 POST方法
定义一个可变的URLMutableRequest
1) 时长
[request setTimeoutInterval:2.0f];
2) 请求方式(默认是GET)
[request setHTTPMethod:@"POST"];
3) 数据体
NSData *body = [string dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
六、 同步方法——必须要某个网络请求完成后,才能后续执行,例如网银登录
看到方法参数中包含__autoreleasing字样,在定义的对象名前面加上“&”
NSURLResponse *response = nil;
NSError *error = nil;
// 同步操作没有完成,后面的代码不会执行
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
1> 接收到数据,表示工作正常
2> 没有接收到数据,但是error为nil,表示接收到空数据
通常服务器没有对该请求做任何响应
3> error不为空,表示请求出错
七、 异步方法
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *reponse, NSData *data, NSError *error) {
// 请求完成后的处理
}];
异步方法不用等待网络请求结束
第二部分 小编的部分demo
1 // 1. 确定地址NSURL 2 NSString *urlString = [NSString stringWithFormat:@"http://XXXXXXX.php?XXXX=%@&XXXX=%@", XXX, XXX; 3 urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 4 NSURL *url = [NSURL URLWithString:urlString]; 5// 2. 建立请求NSURLRequest 6 NSURLRequest *request = [NSURLRequest requestWithURL:url]; 7// 3. 建立并启动连接NSURLConnection 8 NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self]; 9// 启动连接,异步连接请求10 [conn start]; 11// 服务器通知准备,准备中转数据12 self.serverData = [NSMutableData data];
1 // 1. 确定地址NSURL 2 NSString *urlString = [NSString stringWithFormat:@"http://XXXXX.php"]; 3 NSURL *url = [NSURL URLWithString:urlString]; 4// 2. 建立请求NSURLRequest(POST) 5 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 6// 1) 请求方式 7 [request setHTTPMethod:@"POST"]; 8// 2) 数据体 9// 因为dataUsingEncoding已经实现了转码10 NSString *bodyStr = [NSString stringWithFormat:@"username=%@&password=%@", userName, pwd]; 11 NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding]; 12 [request setHTTPBody:body]; 13// 3. 建立并启动连接NSURLConnection14 NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self]; 15// 启动连接,异步连接请求16 [conn start]; 17// 服务器通知准备,准备中转数据18 self.serverData = [NSMutableData data];
1 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{} 2 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{} 3 - (void)connectionDidFinishLoading:(NSURLConnection *)connection{} 4 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{} 5 - (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite 6 {}
小编能力有限,希望大牛来指点,不胜感激!!!!!!
原文:http://www.cnblogs.com/Bob-tong/p/4457986.html
内容总结
以上是互联网集市为您收集整理的ios网络编程(入门级别)-- 基础知识全部内容,希望文章能够帮你解决ios网络编程(入门级别)-- 基础知识所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。