网络请求

一、NSURLConnection-同步请求网络数据

-(void)viewDidAppear:(BOOL)animated{

    [super viewDidAppear:animated];

    

   NSLog(@"We are here...");

   NSString *urlAsString =@"http://www.yahoo.com";

    NSURL *url = [NSURL URLWithString:urlAsString];

    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

    NSURLResponse *response = nil;

    NSError *error = nil;

   NSLog(@"Firing synchronous urlconnection...");

    

    NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest

                                  returningResponse:&response

                                            error:&error];

    

    if ([data length] > 0 && error == nil){

       // 同步返回数据-成功

       NSLog(@"%lu bytes of data wasreturned.", (unsigned long)[data length]);

       

    }else if([data length] == 0 && error == nil){

       // 同步返回数据-成功

       NSLog(@"No data was returned.");

       

    }else if(error != nil){

       //失败

       NSLog(@"Error happened = %@", error);

       NSLog(@"We are done.");


    }

}


二、NSURLConnection-异步请求网络数据

-(void)viewDidAppear:(BOOL)animated{

    [super viewDidAppear:animated];

    

   NSString *urlAsString =@"http://www.baidu.com";

    NSURL *url = [NSURL URLWithString:urlAsString];


    NSURLRequest *urlRequest =[NSURLRequest requestWithURL:url

                                        cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData

                                     timeoutInterval:30.0f];

    

   NSOperationQueue *queue = [[NSOperationQueue alloc]init];

   [NSURLConnectionsendAsynchronousRequest:urlRequest

                                 queue:queue

                       completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {

                          if ([datalength] >0 && error == nil){

                             NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

                             NSLog(@"HTML = %@", html);

                          }elseif ([data length] == 0 && error == nil){

                             NSLog(@"Nothing was downloaded.");

                          }elseif (error != nil){

                             NSLog(@"Error happened = %@", error);

                          }

                       }];

    

   NSLog(@"main thread!");


}


三、NSMutableURLRequest-可变网络请求

有时候,我们希望分来来进行配置网络请求,我们可以用NSMutableURLRequest

NSString *urlAsString =@"http://www.apple.com";

NSURL *url = [NSURL URLWithString:urlAsString];

NSMutableURLRequest *urlRequest =[[NSMutableURLRequest alloc]init];

[urlRequestsetTimeoutInterval:30.0f];

[urlRequest setURL:url];


四、GET方式网络请求-NSMutableURLRequest

-(void)viewDidAppear:(BOOL)animated{

    [super viewDidAppear:animated];

    

   NSString *urlAsString =@"http://www.My_URL_Address.php";

   // GET方式添加参数

    urlAsString = [urlAsStringstringByAppendingString:@"?param1=First"];

    urlAsString = [urlAsStringstringByAppendingString:@"&param2=Second"];

    

    NSURL *url = [NSURL URLWithString:urlAsString];

    

   NSMutableURLRequest *urlRequest = [NSMutableURLRequestrequestWithURL:url];

    [urlRequest setTimeoutInterval:30.0f];

    [urlRequest setHTTPMethod:@"GET"];

   NSOperationQueue *queue = [[NSOperationQueue alloc]init];

   [NSURLConnectionsendAsynchronousRequest:urlRequest

                                 queue:queue

                       completionHandler:^(NSURLResponse *response,NSData *data, NSError *error) {

                          if ([datalength] >0 && error == nil){

                              

                             NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

                              

                             NSLog(@"HTML = %@", html);

                          }elseif ([data length] == 0 && error == nil){

                              

                             NSLog(@"Nothing was downloaded.");

                          }elseif (error != nil){

                             NSLog(@"Error happened = %@", error);

                          }

                          

                       }];

    


}


五、POST方式网络请求-NSMutableURLRequest

其实很简单,只要设置请求方式为:POST,并且传递请求数据就可以了。

[urlRequest setHTTPMethod:@"POST"];

   NSString *body=@"bodyParam1=BodyValue1&bodyParam2=BodyValue2";

   [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值