网络请求-同步请求
- NSString方式
- NSData方式
- NSURLConnection方式
1同步请求
NSString
#pragma mark ---同步请求---
//NSString
- (void)stringSync {
//用NSSting 做一个同步请求
//URL:表示要请求的接口
//encoding:编码格式
//error:错误日志
NSURL *url = [NSURL URLWithString:QiuBai];
//声明一个错误的对象
__autoreleasing NSError *error = nil;
NSString *message = [NSString stringWithContentsOfURL:url encoding: NSUTF8StringEncoding error:&error];
//打印请求结果
//请求成功,就打印message
//请求失败,就打印错误日志
if (error == nil) {
//表示成功
NSLog(@"%@",message);
}else {
NSLog(@"%@",error);
}
//JSON转成字典
// NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:<#(NSData *)#> options:<#(NSJSONReadingOptions)#> error:<#(NSError *__autoreleasing *)#>];
}
2. NSData
//NSData
- (void)dataSync {
//用NSData 做一个同步请求
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:IMG_URL]];
NSLog(@"%@",data);
//解释Data中的数据
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",dict);
//如果这个数据是字典,我们可以通过上面的这个方法快速的转成字典。
//把请求到的数据转成Image
UIImage *image = [UIImage imageWithData:data];
NSLog(@"image");
}
3. NSURLConnection 已废弃
//NSURLConnection
- (void)connectionSync {
//NSURLConnection 是苹果提供的一种数据请求类,已废弃
//NSURLRequest 数据请求
//NSURLResponse 响应
//NSError 错误日志
//制作一个请求对象
NSURLRequest *requst = [NSURLRequest requestWithURL:[NSURL URLWithString:QiuBai]];
//响应是服务器给的,我们需要做的就是声明一个对象,来接收响应
__autoreleasing NSURLResponse *res = nil; //这是一个响应头
NSData *data = [NSURLConnection sendSynchronousRequest:requst returningResponse:&res error:nil];
NSLog(@"%@",res);
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",dict);
}
网友评论