AFNetworking错误代码= -1005“网络连接丢失”

时间:2015-12-21 15:08:13

标签: ios error-handling nsurlconnection afhttprequestoperation afnetworking-3

我已经发布了一个发布HTTP请求的全局方法。我想全局处理响应并在发生错误代码= -1005的情况下再次发出请求。我该怎么做?。

我使用的代码如下: -

- (void)callHTTPAPIForRequest:(NSDictionary *)request onServer:(NSString *)serverURL resultBlock:(void (^)(id))resultBlock failureBlock:(void (^)(NSError *error))failureBlock{
    NSLog(@"%@", request);

    [self POST: serverURL parameters:request success:^(AFHTTPRequestOperation *operation, id responseObject)
     {
         NSDictionary *dicResponce =[APIHelper getDictionaryFromNSData:operation.responseData];
         NSLog(@"dicResponce: %@", dicResponce);
         //NSLog(@"responseObject: %@", responseObject);
         NSLog(@"the header fields in the request are %@",[operation.response allHeaderFields]);
         BlockSafeRun(resultBlock, dicResponce);


     }failure:^(AFHTTPRequestOperation *operation, NSError *error)
     {


             NSLog(@"Error::: %@", error);
             BlockSafeRun(failureBlock, error);


         //failure(error);
     }];



}

blockSafeRun是下面的宏定义: -

定义BlockSafeRun(block,...)块?阻止( VA_ARGS ):nil

请建议。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

检查错误代码

if(error.code==-1005)

比重新调用服务有更多错误不仅仅是-1005请在基础框架中检查NSURLError.h文件你会得到清晰的想法。我在这里发布NSURLError.h中的一些错误

NS_ENUM(NSInteger)
{
    NSURLErrorUnknown =             -1,
    NSURLErrorCancelled =           -999,
    NSURLErrorBadURL =              -1000,
    NSURLErrorTimedOut =            -1001,
    NSURLErrorUnsupportedURL =          -1002,
    NSURLErrorCannotFindHost =          -1003,
    NSURLErrorCannotConnectToHost =         -1004,
    NSURLErrorNetworkConnectionLost =       -1005,
    NSURLErrorDNSLookupFailed =         -1006,
    NSURLErrorHTTPTooManyRedirects =        -1007,
    NSURLErrorResourceUnavailable =         -1008,
    NSURLErrorNotConnectedToInternet =      -1009,
    NSURLErrorRedirectToNonExistentLocation =   -1010,
    NSURLErrorBadServerResponse =       -1011,
    NSURLErrorUserCancelledAuthentication =     -1012,
    NSURLErrorUserAuthenticationRequired =  -1013,
    NSURLErrorZeroByteResource =        -1014,
    NSURLErrorCannotDecodeRawData =             -1015,
    NSURLErrorCannotDecodeContentData =         -1016,
    NSURLErrorCannotParseResponse =             -1017,
    NSURLErrorAppTransportSecurityRequiresSecureConnection NS_ENUM_AVAILABLE(10_11, 9_0) = -1022,
    NSURLErrorFileDoesNotExist =        -1100,
    NSURLErrorFileIsDirectory =         -1101,
    NSURLErrorNoPermissionsToReadFile =     -1102,
    NSURLErrorDataLengthExceedsMaximum NS_ENUM_AVAILABLE(10_5, 2_0) =   -1103,

    // SSL errors
    NSURLErrorSecureConnectionFailed =      -1200,
    NSURLErrorServerCertificateHasBadDate =     -1201,
    NSURLErrorServerCertificateUntrusted =  -1202,
    NSURLErrorServerCertificateHasUnknownRoot = -1203,
    NSURLErrorServerCertificateNotYetValid =    -1204,
    NSURLErrorClientCertificateRejected =   -1205,
    NSURLErrorClientCertificateRequired =   -1206,
    NSURLErrorCannotLoadFromNetwork =       -2000,

    // Download and file I/O errors
    NSURLErrorCannotCreateFile =        -3000,
    NSURLErrorCannotOpenFile =          -3001,
    NSURLErrorCannotCloseFile =         -3002,
    NSURLErrorCannotWriteToFile =       -3003,
    NSURLErrorCannotRemoveFile =        -3004,
    NSURLErrorCannotMoveFile =          -3005,
    NSURLErrorDownloadDecodingFailedMidStream = -3006,
    NSURLErrorDownloadDecodingFailedToComplete =-3007,

    NSURLErrorInternationalRoamingOff NS_ENUM_AVAILABLE(10_7, 3_0) =         -1018,
    NSURLErrorCallIsActive NS_ENUM_AVAILABLE(10_7, 3_0) =                    -1019,
    NSURLErrorDataNotAllowed NS_ENUM_AVAILABLE(10_7, 3_0) =                  -1020,
    NSURLErrorRequestBodyStreamExhausted NS_ENUM_AVAILABLE(10_7, 3_0) =      -1021,

    NSURLErrorBackgroundSessionRequiresSharedContainer NS_ENUM_AVAILABLE(10_10, 8_0) = -995,
    NSURLErrorBackgroundSessionInUseByAnotherProcess NS_ENUM_AVAILABLE(10_10, 8_0) = -996,
    NSURLErrorBackgroundSessionWasDisconnected NS_ENUM_AVAILABLE(10_10, 8_0)= -997,
};

答案 1 :(得分:0)

if(error.code==-1005){
    // retry the request
}