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;
    }

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

  • 相关阅读:
    20191119PHP.class类练习
    20191115PHP cookie登入实例
    Jenkins详细教程
    Navicat 破解
    测试_离职_交接内容
    ETL方法与过程讲
    ETL测试或数据仓库测试入门
    大数据基础了解-(基础01)
    adb调试显示adb: usage: unknown command device
    hive 创建/删除/截断 表(翻译自Hive wiki)
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4331033.html
Copyright © 2011-2022 走看看