从iOS9苹果废除NSURLConnection,建议用NSURLSession
NSURLSession没有直接同步请求的方法。想使用NSURLSession进行同步请求,即数据获取后才继续执行后面代码,使用信号、信号量可以实现。
这里先贴上异步请求代码
typedef enum {
HttpRequestTypePost,
HttpRequestTypeGet
}HttpRequestType;
typedef void(^HttpSuccessBlock)(NSDictionary *successDic);
typedef void(^HttpFailedBlock)(NSError *error);
- (void)sendHttpRequestWithType:(HttpRequstType)type URL:(NSString *)url parameters:(NSDictionary *)params successBlock:(HttpSuccessBlock) successBlock faildBlock:(HttpFailedBlock) failedBlock {
NSURL *URL = [NSURL URLWithString:url];
NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] initWithURL:URL];
if (params != nil) {
NSData *postData = [NSJSONSerialization dataWithJSONObject:params options:NSJSONWritingPrettyPrinted error:nil];
[theRequest setHTTPBody:postData];
}
NSString *methodType = (type == HttpRequstTypeGet ? @"GET" : @"POST");
[theRequest setHTTPMethod:methodType];
[theRequest set