zoukankan      html  css  js  c++  java
  • 设置AFNetworking网络请求的超时时间

    设置AFNetworking网络请求的超时时间

    也许大家使用的时候已经察觉到,设置AFNetworking的超时时间并不管用,但可以用特殊的方式来处理。

    以下是笔者基于AFNetworking2.5.0封装的GET,POST请求用方法。

    POST请求

    + (AFHTTPRequestOperation *)GETMethod:(NSString *)URLString
                               parameters:(id)parameters
                                  success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
                                  failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure {
        
        AFHTTPRequestOperationManager *manager    = [AFHTTPRequestOperationManager manager];
    
        // 设置超时时间
        [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
        manager.requestSerializer.timeoutInterval = 10.f;
        [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
        
        AFHTTPRequestOperation *httpOperation = [manager GET:URLString
                                                  parameters:parameters
                                                     success:^(AFHTTPRequestOperation *operation, id responseObject) {
                                                         if (success) {
                                                             success(operation, responseObject);
                                                         }
                                                     }
                                                     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                                         if (failure) {
                                                             failure(operation, error);
                                                         }
                                                     }];
        
        return httpOperation;
    }

    GET请求

    + (AFHTTPRequestOperation *)POSTMethod:(NSString *)URLString
                                parameters:(id)parameters
                                   success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
                                   failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure {
        
        AFHTTPRequestOperationManager *manager            = [AFHTTPRequestOperationManager manager];
        manager.requestSerializer                         = [AFJSONRequestSerializer serializer];
        manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
        
        
        // 设置超时时间
        [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
        manager.requestSerializer.timeoutInterval = 10.f;
        [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
        
        
        AFHTTPRequestOperation *httpOperation = [manager POST:URLString
                                                   parameters:parameters
                                                      success:^(AFHTTPRequestOperation *operation, id responseObject) {
                                                          if (success) {
                                                              success(operation, responseObject);
                                                          }
                                                      }
                                                      failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                                          if (failure) {
                                                              failure(operation, error);
                                                          }
                                                      }];
        
        return httpOperation;
    }

    其中,设置这么一句话即可:

  • 相关阅读:
    mysql 8 查询报错(sql_mode=only_full_group_by)
    docker安装mysql8版本后 客户端连接出现client does not support authentication...
    docker常用命令
    查看tomcat日志相关Linux命令
    java项目部署到linux服务器涉及的命令
    ehcache与redis对比
    JS中调用BigDecimal处理金额
    thymeleaf模板 th:href 踩坑
    汇总一些绝对有价值的解决方案,边学习边收集
    spring注解总结,spring注解大全
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4331033.html
Copyright © 2011-2022 走看看