在NSURLConnection中提供了两个静态方法请求网络,
sendAsynchronousRequest //异步请求
sendSynchronousRequest //同步请求
例子:
Get 同步请求
//通过 NSURLConnection 静态方法请求网络 同步
-(void)testSyncGet{
NSString *strUrl = @"http://c.51wnl.com/api4.3.2/getstar.ashx?starname=aries";
NSURL *url = [NSURL URLWithString:[strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:5];
NSURLResponse *response;
NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (data) {
NSLog(@"result:%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}else{
NSLog(@"error:%@",error.localizedDescription);
}
}
Get 异步请求
//通过 NSURLConnection 静态方法请求网络 异步
-(void)testASyncGet{
NSString *strUrl = @"http://c.51wnl.com/api4.3.2/getstar.ashx?starname=aries";
NSURL *url = [NSURL URLWithString:[strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:5];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
if (connectionError == nil && [data length] > 0) {
NSLog(@"result:%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}else{
NSLog(@"error:%@",connectionError.localizedDescription);
}
}];
}