ASIHTTPRequest请求超时(ASIHTTPRequest request times ou

2019-06-26 11:38发布

我一直在这个问题上很长一段时间,而且我不确定如何着手试图解决它。

我有一个简单ASIHTTPRequest。 代码如下公布。

当我第一次运行该应用程序总是工作。 我有我可以拉刷新,从而开始ASIHTTPRequest表视图,并为我出的问题我帮你刷新多次。 我可以将应用程序发送到后台,并把它带回来,一切工作正常。 但是,如果我离开应用程序的几个小时回来,有时候我就会开始一个请求超时错误。 一旦发生这种情况,该错误会重复每次我试图刷新时间,我从来没有能够实际上不关闭应用程序,并重新启动它重新连接。

我不相信这个问题是我的网址,因为它可以卡在一个设备上,而精细另一台设备上。 我从来没有能够得到超时错误在模拟器上。

我能想象,为什么我可能会超时错误一次,但我不明白为什么一旦启动,错误永远不会停止。 我真的不知道去哪里找,试图解决这个问题,或者我怎么能去调试它。

这可能是相关的注意,我目前使用TestFlightLive,Google分析和城乡飞艇在我的应用程序。 也许这些图书馆之一引起我的网络行为有问题?

下面是代码:

- (void)getData
{    
    NSURL *url = [NSURL URLWithString:@"http://www.mysite.com/appname/latestData.py?callback=?"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDelegate:self];
    [request setTimeOutSeconds:20.0];
    [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{    
    NSData *responseData = [request responseData];

    DLog(@"requestFinished entered");

    NSString *dataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

    // Update the data model
    if (dataString != nil)
    {
        SBJsonParser *jsonParser = [[SBJsonParser alloc] init];              
        NSDictionary *dataDictionary = [jsonParser objectWithString:dataString error:NULL];
        [self updateDataModel:dataDictionary];
    }        

    [self refreshIsFinished];
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
    NSError *error = [request error];

    // inform the user
    ELog(@"Connection failed! Error - %@ %@",
         [error localizedDescription],
         [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);

    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil
                                                        message:NSLocalizedString(@"CONNECTION_FAILED_MESSAGE",nil) 
                                                       delegate:nil 
                                              cancelButtonTitle:NSLocalizedString(@"CLOSE",nil) 
                                              otherButtonTitles:nil];

    [alertView show];

    [self updateUI];
    [self refreshIsFinished];
}
文章来源: ASIHTTPRequest request times out