zoukankan      html  css  js  c++  java
  • NSMutableURLRequest Http 请求 同步 异步

    #pragma mark  get country code//同步
    -(void)getFKjsonCountryCode
    {
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            
            NSString *urlString = [NSString stringWithFormat:@"http://www.baidu.com"];
            NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
            [request setURL:[NSURL URLWithString:urlString]];
            [request setHTTPMethod:@"POST"];
            //post
            [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
            [request setValue:@"ios" forHTTPHeaderField:@"X-Channel"];
            [request setValue:@"1000" forHTTPHeaderField:@"X-APP-ID"];
            NSHTTPURLResponse* urlResponse = nil;
            NSError *error = nil;
            NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
            //NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
            NSDictionary *countryDic = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];
            if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300)
            {
                NSMutableArray * countryArr =  [[countryDic objectForKey:@"data"]objectForKey:@"phone_codes"];
                if(countryArr)
                {
                    for(int i = 0; i<[countryArr count]; i++)
                    {
                        NSLog(@"countryCode:%@ %@",[[countryArr objectAtIndex:i]objectForKey:@"country"],[[countryArr objectAtIndex:i]objectForKey:@"code"]);
                    }
                }
                // NSLog(@"12:%@",[[[[weatherDic objectForKey:@"data"]objectForKey:@"phone_codes"]objectAtIndex:0]objectForKey:@"country"]);
            }
            else
            {
                
            }
    
        });
    }



    #pragma mark  get country code //异步
    -(void)getFKjsonCountryCodeAsync
    {
        NSString *urlString = [NSString stringWithFormat:@"http://www.baidu.com"];
        // 初始化请求
        NSMutableURLRequest  *request = [[NSMutableURLRequest alloc] init];
        // 设置
        [request setURL:[NSURL URLWithString:urlString]];
        [request setCachePolicy:NSURLRequestUseProtocolCachePolicy]; // 设置缓存策略
        [request setTimeoutInterval:20.0]; // 设置超时
        [request setHTTPMethod:@"POST"];
        //......
        
        //    receivedData = [[NSMutableData alloc] initData: nil];
        NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request     delegate:self];
        if (connection == nil) {
            NSLog(@"errors");
            // 创建失败
            return;
        }
    }
    
    // 收到回应
    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
    {
        NSLog(@"receive the response");
        
    }
    // 接收数据
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
    {
        
        NSError *error = nil;
        NSDictionary *countryDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
        NSMutableArray * countryArr =  [[countryDic objectForKey:@"data"]objectForKey:@"phone_codes"];
        if(countryArr)
        {
            
            for(int i = 0; i<[countryArr count]; i++)
            {
                NSLog(@"countryCode:%@ %@",[[countryArr objectAtIndex:i]objectForKey:@"country"],[[countryArr objectAtIndex:i]objectForKey:@"code"]);
            }
        }
        
    }
    // 数据接收完毕
    - (void)connectionDidFinishLoading:(NSURLConnection *)connection
    {
       
        
        NSLog(@"finishLoading");
    }
    // 返回错误
    -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
    {
        
        NSLog(@"Connection failed: %@", error);
    }
    
    
    







  • 相关阅读:
    phpMyAdmin导入大的sql文件
    mysql错误代码解释
    Sphinx在windows下安装使用[支持中文全文检索]
    Linux查看磁盘分区等命令和相关工具介绍
    webuploader大小限制
    常用的C#正则表达式!
    C# csv.excel导入
    日志
    微信
    winform窗口控件随窗口变化
  • 原文地址:https://www.cnblogs.com/qingjoin/p/3394141.html
Copyright © 2011-2022 走看看