#import "DataService.h"
#define BASE_URL @"https://api.weibo.com/2/"
@implementation DataService
+ (void)requestData:(NSString *)urlStr
htttpMethod:(NSString *)method
params:(NSMutableDictionary *)params
completionHandle:(void(^)(id result))block
{
//1.构建URL
urlStr = [BASE_URL stringByAppendingString:urlStr];
NSURL *url = [NSURL URLWithString:urlStr];
//2.构建request
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setTimeoutInterval:60];
[request setHTTPMethod:method];
if ([method isEqualToString:@"GET"]) {
NSMutableString *paramsString = [[NSMutableString alloc] initWithString:@"?"];
for (int i = 0; i < params.count; i++) {
NSString *key = params.allKeys[i];
NSString *value = params[key];
[paramsString appendFormat:@"%@=%@", key, value];
if (i < params.count - 1) {
[paramsString appendFormat:@"&"];
}
}
request.URL = [NSURL URLWithString:[urlStr stringByAppendingString:paramsString]];
}else if ([method isEqualToString:@"POST"]) {
NSMutableString *paramsString = [[NSMutableString alloc] initWithString:@""];
for (int i = 0; i < params.count; i++) {
NSString *key = params.allKeys[i];
NSString *value = params[key];
[paramsString appendFormat:@"%@=%@", key, value];
if (i < params.count - 1) {
[paramsString appendFormat:@"&"];
}
}
//access_token=2.00SllYeF568jxC1082c39bc40_Vqyg&username=aaa&pass=bbb
NSData *bodyData = [paramsString dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:bodyData];
}
//构建connection对象
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request
queue:queue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (connectionError) {
NSLog(@"Error: %@", connectionError);
return;
}
//解析Json
id result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
//回到主线程调用block
dispatch_async(dispatch_get_main_queue(), ^{
//回掉block
block(result);
});
}];
}
@end