IOS开发之网络同步GET请求

在网络请求中,HTTP网络请求使用的最多,不管是获取文本还是获取二进制数据,亦或是将数据提交到服务器上。HTTP请求使用起来最为简单,HTTP请求类型分为好几种,例如:GET,POST,PUT,DELETE。这其中最为常见的两种形式就是GET和POST。

GET是用来从服务器上获得数据的请求方式。
同步请求的步骤如下:

  • 创建NSURL
  • 通过NSURL创建NSURLRequest
  • 建立NSURLConnection发送同步请求
  • 数据完成之后进行处理

1.创建NSURL

//利用UIButton创建一个方法
- (IBAction)synchronizedGet:(UIButton *)sender{
    NSLog(@"同步get");
    NSString *urlString = @"https://api.weibo.com/2/statuses/public_timeline.json?access_token=2.00zMf9ND9ip3KCc14c03c2900L6tAc";

//编码    
urlString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

NSURL *url = [NSURL URLWithString:urlString];
}

2.通过NSURL创建NSURLRequest请求

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];

3.使用NSURLConnection 类和服务器连接,这个是同步过程

NSURLResponse *httpResponse;
NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&httpURLResponse error:&error];

4.数据完成之后进行处理

//JSON数据格式解析,利用系统提供的API进行JSON数据解析
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

//1.直接用网上下载的数据
NSDictionary *dic = [dictionary[@"statuses"] objectAtIndex:0];
NSString *text = dic[@"text"];
self.textView.text = text;

//2.创建一个WeiBoModel类(MVC模式,这里相当于创建一个model)
//WeiBoModel类中有以下属性
@property (nonatomic,strong)NSArray *statuses;
@property (nonatomic,strong)NSNumber *hasvisible;
@property (nonatomic,strong)NSNumber *previous_cursor;
@property (nonatomic,strong)NSNumber *next_cursor;
@property (nonatomic,strong)NSNumber *total_number;
@property (nonatomic,strong)NSNumber *interval;
//创建一个方法,传入一个字典,通过model对象设置其属性
- (id)initWithDictionary:(NSDictionary *)dictionary;
//方法的实现
- (id)initWithDictionary:(NSDictionary *)dictionary{

    if (self = [super init]) {
        [self setValuesForKeysWithDictionary:dictionary];
    }
    return self;
}
//JSON数据格式解析,利用系统提供的API进行JSON数据解析
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

//创建一个model
WeiBoModel *model = [[WeiBoModel alloc] initWithDictionary:dictionary];
NSString *text = [model.statuses[0] objectForKey:@"text"];

self.textView.text = text;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值