同步 异步请求

 
 
   //新建一个URL
    NSURL *url=[NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
    
    
    
    
    //创建一个GET请求   cachePolicy:缓存  NSURLRequestReloadRevalidatingCacheData :忽略缓存数据 最常用的
    //timeoutInterval:请求时间
    NSURLRequest *request=[NSURLRequest requestWithURL:url
                                            cachePolicy:NSURLRequestReloadRevalidatingCacheData
                                        timeoutInterval:10.0f];
    
    
    
    //设置回应和错误的指针变量
    NSHTTPURLResponse *response=nil;
    NSError *error=nil;
    
    
    
    
    //发起同步连接   returningResponse:响应值的对象   
    NSData *data=[NSURLConnection sendSynchronousRequest:request
                                       returningResponse:&response
                                                   error:&error];
    
    NSLog(@"responseCode = %d",[response statusCode]);//输出 响应值 200是 请求成功
    
    //打印回应和错误信息
    NSLog(@"response = %@",[NSHTTPURLResponse localizedStringForStatusCode:[response statusCode]]);
    NSLog(@"error =%@",[error localizedDescription]);
    
    
    
    //打印字符串信息
    NSString *str=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//把data转化为字符串
//     NSString *str=[[NSString alloc]initWithData:data encoding:4];//4是UTF8的 枚举值 所以可行
    NSLog(@"str= %@",str);
    [str release];

    
    
    */
    // /手动创建一个POST同步连接   只要改NSMutableURLRequest  //将请求方式设置为POST [request setHTTPMethod:@"POST"];
  /*  
    //新建一个URL
    NSURL *url=[NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
    
    
    
    
    //创建一个GET请求   cachePolicy:缓存  NSURLRequestReloadRevalidatingCacheData :忽略缓存数据 最常用的
    //timeoutInterval:请求时间
   
   NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10.0f];
   //将请求方式设置为POST
   [request setHTTPMethod:@"POST"];
   
    
    //设置回应和错误的指针变量
    NSHTTPURLResponse *response=nil;
    NSError *error=nil;
    
    
    
    
    //发起同步连接   returningResponse:响应值的对象   
    NSData *data=[NSURLConnection sendSynchronousRequest:request
                                       returningResponse:&response
                                                   error:&error];
    
    NSLog(@"responseCode = %d",[response statusCode]);//输出 响应值 200是 请求成功
    
    //打印回应和错误信息
    NSLog(@"response = %@",[NSHTTPURLResponse localizedStringForStatusCode:[response statusCode]]);
    NSLog(@"error =%@",[error localizedDescription]);
    
    
    
    //打印字符串信息
    NSString *str=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//把data转化为字符串
    //     NSString *str=[[NSString alloc]initWithData:data encoding:4];//4是UTF8的 枚举值 所以可行
    NSLog(@"str= %@",str);
    [str release];
    
    
    
    
   */
    
     //异步请求
    
    //初始化
    NSURL *url=[NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
    NSURLRequest *request=[NSURLRequest  requestWithURL:url];//请求
    [NSURLConnection connectionWithRequest:request delegate:self]; //NSURLConnectionDataDelegate 在头文件写代理
    
    [self.window makeKeyAndVisible];
    return YES;
}


//接受响应   此方法 只要在服务器接受到响应就执行下面的 接受数据方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
   // NSLog(@"%s",__FUNCTION__);
    mutableData =[[NSMutableData alloc]initWithLength:0];//初始化

}
//接受数据
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    NSLog(@"%s1",__FUNCTION__);
    [mutableData appendData:data];//追加进去  调用三次  每次都追加
    NSLog(@"data2===%d",data.length);
    
}
//结束
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"%s2",__FUNCTION__);
    NSString *str=[[NSString alloc]initWithData:mutableData encoding:4];//转换成字符串
    NSLog(@"str= %@",str);
    [str release];
    [mutableData release];
    
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值