码迷,mamicode.com
首页 > 其他好文 > 详细

网络请求步骤

时间:2014-08-11 17:29:03      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   io   数据   

网络请求三步骤

1> URL 确定资源

NSString *urlStr = @"";

NSURL *url = [NSURL URLWithString:urlStr];

(1)  GET  URL 中包含参数

(2)  POST  URL 中没有参数

2> 建立请求 URLRequest

(1)  GET  不需要对请求做特殊处理

    NSURLRequest

(2)  POST  需要在请求中,指定 HTTP 方法和 HTTP 数据体

    NSMutableURLRequest

    HTTPMethod = @"POST"

    HTTPBody = 包含登录信息的二进制数据

3> 发送请求

  *** 在实际开发中, 所有的网络请求都是异步的

  NSURLConnection sendAsynchronousRequest

  在请求的异步方法中, 对接收到的数据进行处理

 

*************************代码******************************

1 - (IBAction)login
2 {
3     [self postLogonWithUserName:self.userNameText.text password:self.pwdText.text];
4 }

 

 1 #pragma mark - GET 登录
 2 - (void)getLogonWithUserName:(NSString *)userName password:(NSString *)password
 3 {
 4     // 1. 准备资源 url
 5     NSString *urlStr = [NSString stringWithFormat:@"http://127.0.0.1/login.php?username=%@&password=%@", userName, password];
 6     
 7     NSURL *url = [NSURL URLWithString:urlStr];
 8     
 9     // 2. 创建网络请求 URLRequest
10     // URLRequest 默认方法就是 GET
11     NSURLRequest *request = [NSURLRequest requestWithURL:url];
12     
13     // 3. 发送网络请求 URLConnection
14     // *** 所有的网络请求,都使用异步方法
15     [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
16         
17         // 1> 将返回的二进制数据,转换成字符串
18         // (1)将二进制数据转换成字符串,没有直接的类方法,需要 alloc initWithData
19         // (2)提示:在开发网络时,如果需要跟踪网络返回的具体内容,经常会先将 data 转换成字符串输出
20         // 转换成字符串的方式,在调试中经常使用
21         NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
22         NSLog(@"%@", result);
23         
24         // 2> JSON ,格式是和NSDictionary的快速包装格式非常像
25         // 将 JSON 转换成字典
26         NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
27         NSLog(@"%@", dict);
28     }];
29 }

 

 1 #pragma mark - POST 登录
 2 - (void)postLogonWithUserName:(NSString *)userName password:(NSString *)password
 3 {
 4     // 1. url
 5     NSString *urlStr = @"http://127.0.0.1/login.php";
 6     NSURL *url = [NSURL URLWithString:urlStr];
 7     
 8     // 2. requeset, POST 方法需要建立一个可变的请求
 9     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
10     // 2.1 POST方法
11     request.HTTPMethod = @"POST";
12     // 2.2 数据体
13     NSString *bodyStr = [NSString stringWithFormat:@"username=%@&password=%@", userName, password];
14     // 将字符串转换成二进制数据
15     request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
16     
17     // 3. 发送请求
18     [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
19         
20         // 1> 将返回的二进制数据,转换成字符串
21         // (1)将二进制数据转换成字符串,没有直接的类方法,需要 alloc initWithData
22         // (2)提示:在开发网络时,如果需要跟踪网络返回的具体内容,经常会先将 data 转换成字符串输出
23         // 转换成字符串的方式,在调试中经常使用
24         NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
25         NSLog(@"%@", result);
26         
27         // 2> JSON ,格式是和NSDictionary的快速包装格式非常像
28         // 将 JSON 转换成字典
29         NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
30         NSLog(@"POST 登录 === >%@", dict);
31     }];
32 }

 

网络请求步骤,布布扣,bubuko.com

网络请求步骤

标签:style   blog   http   color   使用   os   io   数据   

原文地址:http://www.cnblogs.com/yudigege/p/3904971.html

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