http://www.mamicode.com/info-detail-511816.html
+(void)getUserDetailWithUserId:(long)userid withToken:(NSString*)token withSuccess:(SuccessBlock)success withFail:(FailBlock)fail{
NSString * head = [NSString stringWithFormat:@"%@?ticket=",NO_LOGIN_MAIN_WEB_URL];
NSDictionary * dict = [[NSDictionary alloc]initWithObjectsAndKeys:@(userid),@"userId", nil];
NSString * dictjson = [dict jsonString];
NSString * deviceStr = DEVICEMSG;
NSString * content = [NSString stringWithFormat:@"%@&_s=user&_m=get_userDetailInfo&type=w&data=%@",deviceStr,dictjson];
NSString * userstr = [head stringByAppendingFormat:@"%@%@",token,content];
[self getuserDetaulRequestMaxTimes:3 withUrl:userstr withSuccessBlock:success withFailBlock:fail];
}
+(void)getuserDetaulRequestMaxTimes:(NSInteger)times withUrl:(NSString*)urlStr withSuccessBlock:(SuccessBlock)success withFailBlock:(FailBlock)fail{
if ([DDClientState shareInstance].networkState==DDNetWorkDisconnect) {
NSError * error = [NSError errorWithDomain:@"很抱歉当前没有网络" code:0 userInfo:nil];
fail(error);
}else{
if (times<=0) {
NSError * error = [NSError errorWithDomain:@"三次尝试机制,userDetail仍然失败" code:0 userInfo:nil];
fail(error);
}else{
[self getRequestWithUrl:urlStr withTimes:(NSInteger)times successBlock:^(id result) {
if (success) {
success(result);
}
} failBlock:^(id failResult) {
[self getuserDetaulRequestMaxTimes:times-1 withUrl:urlStr withSuccessBlock:success withFailBlock:fail];
}];
}
}
}
# pragma mark - AFHTTPSEssion
+(void)getRequestWithUrl:(NSString *)url withTimes:(NSInteger)times successBlock:(SuccessBlock)success failBlock:(FailBlock)fail{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer.timeoutInterval = 10*times;
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
[manager.requestSerializer setHTTPShouldHandleCookies:NO];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes =[NSSet setWithObjects:@"application/json",@"text/json", @"text/javascript" ,@"text/plain" ,@"text/html", nil];
NSString *getURL = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[manager GET:getURL parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
if ([dic[@"success"] boolValue]) {
success(dic);
}else{
fail(dic);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
fail(error.localizedDescription);
}];
}