zoukankan      html  css  js  c++  java
  • NSURLConnection的异步请求方式

    iOS5.0 SDK NSURLConnection类新增的sendAsynchronousRequest:queue:completionHandler:方法

    sendAsynchronousRequest可以很容易地使用NSURLRequest接收回调,完成http通信。

    1. post数据

     1 - (void)httpAsynchronousRequest{
     2 
     3     NSURL *url = [NSURL URLWithString:@"http://url"];
     4     
     5     NSString *post=@"postData";
     6     
     7     NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
     8 
     9     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    10     [request setHTTPMethod:@"POST"];
    11     [request setHTTPBody:postData];
    12     [request setTimeoutInterval:10.0];
    13     
    14     NSOperationQueue *queue = [[NSOperationQueue alloc]init];
    15     [NSURLConnection sendAsynchronousRequest:request
    16                                        queue:queue
    17                            completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
    18                                if (error) {
    19                                    NSLog(@"Httperror:%@%d", error.localizedDescription,error.code);
    20                                }else{
    21                                    
    22                                    NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
    23                                    
    24                                    NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    25                                    
    26                                    NSLog(@"HttpResponseCode:%d", responseCode);
    27                                    NSLog(@"HttpResponseBody %@",responseString);
    28                                }
    29                            }];
    30 
    31     
    32 }

    2. 拉取图片

     1         [NSURLConnection sendAsynchronousRequest:
     2          [NSMutableURLRequest requestWithURL:[NSURL URLWithString:imageStr]]
     3                                        queue:[NSOperationQueue mainQueue]
     4                            completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
     5         {
     6                            NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
     7                            if (!error && responseCode == 200) {
     8                               
     9                                UIImage *_img = [[UIImage alloc] initWithData:data];
    10                                
    11                            }else{
    12                                // placeHolder image  
    13                            }
    14         }];
  • 相关阅读:
    redhat linux tftp
    mysql
    mysql操作!
    【Android】第一个JNI测试程序
    【android】【google map api v2】google 地图 api v2
    【Android】【转】内存耗用:VSS/RSS/PSS/USS
    【Android】获取Mac地址【2】
    【Android】每个Activity中加入引导界面
    【JNI】javah使用(初步)
    【Android】Eclipse svn插件安装说明
  • 原文地址:https://www.cnblogs.com/samniu/p/3817744.html
Copyright © 2011-2022 走看看