//同步get请求
// NSURL: iOS 中的URL存储类,可存储网址或者文件路径
NSString *urlString = @"http://api.map.baidu.com/place/v2/search?query=大保健®ion=郑州&output=json&ak=6E823f587c95f0148c19993539b99295";
//创建url
//当url中出现中文的时候,需要转码
NSURL *url = [[NSURL alloc] initWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
// NSURLRequest, url请求类,不能修改请求
// NSMutableURLRequest , 设置url请求的参数,例如请求方式
//创建请求
NSURLRequest *urlRequest = [[NSURLRequest alloc] initWithURL:url];
//请求的最大时长(默认, 60秒)
NSLog(@"%f", urlRequest.timeoutInterval);
//请求的方式(默认, GET)
NSLog(@"%@", urlRequest.HTTPMethod);
//缓存策略(不能设置,可以在初始化的时候指定)
// NSURLRequestUseProtocolCachePolicy:使用协议缓存策略
// NSURLRequestReloadIgnoringLocalCacheData:不使用本地的缓存,每次都从服务器请求数据
// NSURLRequestReturnCacheDataElseLoad:先读取缓存,没有缓存,再从服务器端请求数据
// NSURLRequestReturnCacheDataDontLoad:只从缓存获取(类似离线模式)
NSLog(@"%lu", urlRequest.cachePolicy);
[url release];
// NSURLConnection: 网络连接类,用于发送url请求
//发送同步请求
NSURLResponse *response = nil;
NSError *error = nil;
// NSData, 存储二进制数据
NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
NSLog(@"%@", data);
// NSURLConnection sendSynchronousRequest:<#(NSURLRequest *)#> returningResponse:<#(NSURLResponse *__autoreleasing *)#> error:<#(NSError *__autoreleasing *)#>
//转成NSString
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", string);
if (error) {
NSLog(@"%@", error);
}
if (response) {
NSLog(@"%@", response);
}