码迷,mamicode.com
首页 > 移动开发 > 详细

iOS:网络编程的介绍

时间:2015-09-23 21:15:45      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

1、网络编程:HTTP协议、XML数据协议、JSON数据协议:

传输数据有四种方式:Get方式、Post方式、同步请求方式、异步请求方式。
 
说明:同步和异步请求方式在创建链接对象和创建请求对象时,用Get方式或Post方式中的任意一种即可;那么,同步/异步请求方式和Get/Post方式不同的地方是什么呢?区别在于进行连接处理这一步上,Get/Post方式它们均使用相同代理NSURLConnectionDataDelegate的方法传输数据,而同步/异步请求方式则不需要使用代理。
 

 
2、实现步骤:
•第一步:确定地址——URL   •NSURL(地址)
•第二步:建立请求    •NSURLRequest(请求,GET请求使用)/•NSMutableURLRequest(可变请求,POST请求使用)
•第三步:开始连接    •NSURLConnection(连接)

   等待网络处理中……

•第四步:连接完成,处理结果
 
 
3、<NSURLConnectionDataDelegate>方法,Get和Post方式发送数据时,连接过程中使用代理,之所以使用代理,是因为要处理请求返回的结果!

// 服务器开始返回数据

-(void)connection:didReceiveResponse:

// 收到服务器返回的数据,本方法会被调用多次

- (void)connection:didReceiveData:

// 数据接收完毕,做数据的最后处理

-(void)connectionDidFinishLoading:

// 网络连接错误

- (void)connection:didFailWithError:

// 发送数据给服务器,POST 请求使用此方法

- (void)connection:didSendBodyData:totalBytesWritten: totalBytesExpectedToWrite:

unsigned long enconding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)

 

4、GET请求步骤——1. 地址 2.请求 3.连接 4.启动

(1)定义URL:

•NSString *urlStr = @"http://127.0.0.1/login.php?username=admin&password=123";
•NSURL *url = [NSURL URLWithString:[urlStr   
       stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
 
(2)定义Reauest:
•NSURLRequest *request = [NSURLRequest requestWithURL:url];
 
(3)定义Connection:
•NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];
 
(4)启动Connection:
•[conn start];
 
 
5、POST请求步骤——1. 地址 2.请求 3.连接 4.启动
(1)定义URL
•NSString *urlStr = @"http://xxx.com/login.php”;
 
(2)定义Request:
•NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
•// 等待服务器响应的最长时间
•[request setTimeoutInterval:5.0];
•// 设置请求方法,大小写无关
•[request setHTTPMethod:@"post"];
•NSString *bodyString = [NSString stringWithFormat:@"username=%@&password=%@",_userNameText.text,_passwordText.text];
•// 生成请求体数据并编码
•NSData *body = [bodyString dataUsingEncoding:NSUTF8StringEncoding];
•// 设置HTTP请求数据体
•[request setHTTPBody:body];
 
(3)定义Connection:
•NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];
 
(4)启动Connection:
•[conn start];
 
 
6、同步请求和异步请求(前两步和Get或Post相同): 1. 地址 2.请求 3.使用同步/异步请求
•NSURLConnection提供了两个静态方法可以直接同步或异步调用NSURLRequest,而无需通过NSURLConnectionDataDelegate获取数据
•同步请求:

sendSynchronousRequest:request returningResponse:&response error:&error

•异步请求:

sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)

•服务器传输回来的数据,解析它要用的编码类型:

unsigned long encoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

iOS:网络编程的介绍

标签:

原文地址:http://www.cnblogs.com/XYQ-208910/p/4833439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!