AFNetworking修改默认的请求时间(默认30s) 太长了

写代码  我不习惯把Controller里面的代码量搞太大  一般是通过自定制几个view   写几个网络请求类 来尽量减少Controller的代码  

网络请求时   把得到的数据通过代理传递到Controller  这样整个界面看起来清爽  

网络请求 除了自定制  我一般习惯用这两个传统方法

- (void)loginAccount:(NSString *)loginAccount Withparameters:(NSDictionary *)parameters
{
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];//如果报接受类型不一致请替换一致text/html或别的
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    // 设置超时时间
    [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
    manager.requestSerializer.timeoutInterval = 5.f;
    [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
    [manager POST:SERVERURL parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        
        id responseObj = [self parseJson:responseObject];
        if ([responseObj isKindOfClass:[NSDictionary class]]) {
            responseObj = (NSDictionary *)responseObj;
            
        }
        NSString *code = [responseObj objectForKey:@"code"];
        UserInformation *userInfo;
        if (![code isEqualToString:@"100"]) {  //如果不是登录成功。显示错误描述
            [[[UIAlertView alloc] initWithTitle:Nil message:[self stringFromCode:code] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
            
        }else {
            NSLog(@"%@", [responseObj objectForKey:@"data"]);
            userInfo = [self parseData:responseObj];  //登录时服务器返回的数据
        }
        
        if (self.delegate && [self.delegate respondsToSelector:@selector(loginSuccess:)]) {
            
            [self.delegate loginSuccess:userInfo];
        }
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error){
        //登录失败   代理方法
        if (self.delegate && [self.delegate respondsToSelector:@selector(loginFail:)]) {
            [self.delegate loginFail:nil];
        }
    }];
    
//    NSURL *url = [NSURL URLWithString:[NetworkRequestAddress getLoginURL]];
//    NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
//    [urlRequest setHTTPMethod: @"POST"];
//    
//    NSString *body = [NSString stringWithFormat:@"%@=%@", @"data", [parameters objectForKey:@"data"]];
//    
//    [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
//    
//    operation = [[AFHTTPRequestOperation alloc]initWithRequest:urlRequest];
//    
//    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
//        
//        id responseObj = [self parseJson:responseObject];
//        if ([responseObj isKindOfClass:[NSDictionary class]]) {
//            responseObj = (NSDictionary *)responseObj;
//            
//        }
//        NSString *code = [responseObj objectForKey:@"code"];
//        UserInformation *userInfo;
//        if (![code isEqualToString:@"100"]) {  //如果不是登录成功。显示错误描述
//            [[[UIAlertView alloc] initWithTitle:Nil message:[self stringFromCode:code] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
//            
//        }else {
//            NSLog(@"%@", [responseObj objectForKey:@"data"]);
//            userInfo = [self parseData:responseObj];
//        }
//        //代理传值
//        //    A类传值给B类,A类定义协议,B类作为A类的代理并实现协议。
//        //    LoginNetworkManager 请求得到的返回值要传给 LoginViewController
//        //    LoginNetworkingManager定义协议方法(loginSuccess、loginFailed),LoginViewController实现LoginNetworkingManager的协议方法
//        
//        
//        if (self.delegate && [self.delegate respondsToSelector:@selector(loginSuccess:)]) {
//            
//            [self.delegate loginSuccess:userInfo];
//        }
//        
//    } failure:^(AFHTTPRequestOperation *operation, NSError *error){
//        
//        //登录失败   代理方法
//        if (self.delegate && [self.delegate respondsToSelector:@selector(loginFail:)]) {
//            [self.delegate loginFail:nil];
//        }
//    }];
//    [operation start];
}

没注释的是方法1   注释了得时方法2     

AFNetworking默认的请求时间好像是30s   太长了  用户等太久

下面的这个方法  是设置请求时间的  

// 设置超时时间
    [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
    manager.requestSerializer.timeoutInterval = 3.f;
    [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];

靠谱   欢迎各位大神 赐教


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值