zoukankan      html  css  js  c++  java
  • NSURLConnection 异步加载网络数据

    #import "ViewController.h"


    @interface ViewController ()


    @end


    @implementation ViewController


    - (void)viewDidLoad {

        [super viewDidLoad];

        //[self takeRequestUrlWithString:@"http://127.0.0.1/test.json"];

        //[self takeRequestUrlWithString:@"http://www.baidu.com"];

    }


    -(void)takeRequestUrlWithString:(NSString*)str

    {

        NSURL *url=[NSURL URLWithString:str];

        NSURLRequest *request=[NSURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:15];

        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

                if(!connectionError)

                {

                    NSHTTPURLResponse *httpResponse=(NSHTTPURLResponse*)response;

                    if (httpResponse.statusCode==200) {

                        NSError *error=nil;

                        //返回的要么是字典要么是数组

                        id needData=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

                        if(error)

                        {

                            NSLog(@"JSON 解析出错:%@",error);

                        }

                        else{

                            NSLog(@"模型转换:数据为:%@",needData);

                        }

                    }

                    else

                    {

                        NSLog(@"服务器出错 ,错误码:%ld",httpResponse.statusCode);

                    }

                    

                }

                else{

                    NSLog(@"连接错误!!!");

                }

        }];

    }

    @end


    @interface RYDataModel : NSObject


    @property(nonatomic,strong)NSNumber *age;

    @property(nonatomic,copy)NSString*name;

    @property(nonatomic,strong)NSDictionary*school;


    +(instancetype)dataWithDict:(NSDictionary*)dict;


    @end


    @implementation RYDataModel


    +(instancetype)dataWithDict:(NSDictionary*)dict

    {

        RYDataModel *model=[RYDataModel new];

        [model setValuesForKeysWithDictionary:dict];

        return model;

    }


    @end

  • 相关阅读:
    获取最近6个月的年月(yyyyMM,不包括当月)
    checkbox与<c:forEach>在开发中遇到的问题记录
    MyBatis开发-->增删改
    MyBatis开发-->接口方式编程
    MyBatis开发-->入门
    android-async-http框架之与网络进行数据交互
    android-async-http框架之与服务器进行数据交互
    jQuery截取{}里的字符串及获取json里的值
    SSH整合之三:添加Hibernate环境且使之与Spring进行整合
    angular源码剖析之Provider系列--QProvider
  • 原文地址:https://www.cnblogs.com/tangranyang/p/4718246.html
Copyright © 2011-2022 走看看