+ (void)startRequestWithUrl:(NSString *)url
method:(NSString *) method
params:(NSDictionary *)params
successBlock:(void (^)(BOOL success,NSDictionary *data,NSString* msg))successBlock
failureBlock:(void (^)(NSString* description))failureBlock {
NSString *URLStr = [NSString stringWithFormat:@"%@%@",URL_main,url];
NSDictionary *mutableParams = [NSDictionary nullDic:params?:@{}];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mutableParams options:0 error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
//method 为时post请求还是get请求
NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] requestWithMethod:method URLString:URLStr parameters:nil error:nil];
//设置超时时长
request.timeoutInterval = 30;
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
//将对象设置到requestbody中 ,主要是这不操作
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
//进行网络请求
[[manager dataTaskWithRequest:request uploadProgress:^(NSProgress * _Nonnull uploadProgress) {
} downloadProgress:^(NSProgress * _Nonnull downloadProgress) {
} completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (!error) {
NSData *data = [NSJSONSerialization dataWithJSONObject:responseObject options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@" === %@",jsonString);
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
if (successBlock) successBlock(YES, dic[@"info"], dic[@"responseMsg"]);
} else {
if (failureBlock) failureBlock(error.localizedDescription);
}
}] resume];
}
网友评论