簡體   English   中英

具有基本身份驗證的AFNetworking請求最初可以工作,但幾分鍾后失敗

[英]AFNetworking request with Basic Auth works at first but fails after a few minutes

我有一個應用,該應用的數據來自具有基本身份驗證的AFNetworking請求。 我有一個刷新按鈕,可以執行與最初提供數據相同的功能。 所有這些都可以,但是幾分鍾后不起作用。

我的代碼:

- (void) refreshData
{
    // Show loading
    NSLog(@"Refreshing...");
    [LoadingView initInView:self.view];

    // Get session data for auth key
    SessionHelper *session = [SessionHelper sharedInstance];

    // Setup request
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager setRequestSerializer:[AFHTTPRequestSerializer serializer]];
    [manager.requestSerializer clearAuthorizationHeader];
    [manager.requestSerializer setAuthorizationHeaderFieldWithUsername:session.authKey password:@""];
    NSString *url = @"https://myurl.com/getdata";
    [manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        self.data = [[NSMutableArray alloc] init];
        [self.data addObjectsFromArray:responseObject];
        [self.tableView reloadData];
        [LoadingView remove];
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", [error description]);
        [operation cancel];
    }];
}

起初可以反復正常工作,但是幾分鍾后,它在加載屏幕(來自LoadingView)和錯誤掛起:

錯誤:錯誤域= NSURLErrorDomain代碼= -1012“操作無法完成。(NSURLErrorDomain錯誤-1012。)” UserInfo = 0x8a5ed20 {NSErrorFailingURLKey = https://myurl.com/getdata,NSErrorFailingURLStringKey = https:// myurl .com / getdata }

我以為也許我需要做clearAuthorizationHeader之類的事情,但是沒有。 有任何想法嗎? 謝謝!

更新:錯誤消息中記錄operation.response.statusCode給我0。

更新2:開始失敗后,使用AFNetworkActivityLogger可以為我提供以下信息:

2014年2月26日13:23:02.206 MyApp的ipad公司[4087:60B] GET ' https://myurl.com/getdata ' 2014年2月26日13:23:02.646 MyApp的ipad公司[4087:60B] [錯誤] GET '(空)'(0)[0.4332 s]:錯誤域= NSURLErrorDomain代碼= -1012“操作無法完成。(NSURLErrorDomain錯誤-1012。)” UserInfo = 0x17d9a990 {NSErrorFailingURLKey = https:// myurl。 com / getdata ,NSErrorFailingURLStringKey = https://myurl.com/getdata } 2014-02-26 13:23:02.648 MyApp iPad [4087:60b]錯誤:錯誤域= NSURLErrorDomain代碼= -1012“無法進行該操作已完成。(NSURLErrorDomain錯誤-1012。)“ UserInfo = 0x17d9a990 {NSErrorFailingURLKey = https://myurl.com/getdata,NSErrorFailingURLStringKey = https://myurl.com/getdata },狀態代碼:0

似乎該URL發送為(null)...

事實證明,根據http://support.apple.com/kb/HT5012 ,即使我使用的GoDaddy證書看起來有效且受iOS 7支持,添加此位也可以解決問題。 似乎有點挫敗了目的,但它奏效了。 如果有人可以提供一些見解/更有益的幫助,我將不會接受此答案。

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
securityPolicy.allowInvalidCertificates = YES;
manager.securityPolicy = securityPolicy;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM