Mic*_*ela 7 timeout restkit ios5
我从我的iOS应用程序调用web服务,最多可能需要四分钟才能返回.我正在使用RestKit来调用和加载对象.我发现的是,当请求花费很长时间时,我会在~60秒后收到超时错误.我已经尝试将timeoutInterval设置为荒谬的数量,但它仍然在~60之后超时.
RKObjectManager* objectManager = [RKObjectManager objectManagerWithBaseURL:HOSTNAME];
objectManager.client.requestQueue.showsNetworkActivityIndicatorWhenBusy = YES;
objectManager.client.disableCertificateValidation = YES;
//timeout
objectManager.client.timeoutInterval = 1000;
Run Code Online (Sandbox Code Playgroud)
这是对服务的调用:
- (void)loadData
{
NSString *uid = [self retrieveFromUserDefaults:@"login_preference"];
NSString *pwd = [self retrieveFromUserDefaults:@"password_preference"];
if([uid isEqualToString:@""] || [pwd isEqualToString:@""]){
[self stopSpinner];
[self enableUserInterface:YES];
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Missing Settings"
message:@"Please enter your login information in the settings."
delegate:nil
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
return;
}
RKObjectManager* objectManager = [RKObjectManager sharedManager];
NSDictionary *params = [NSDictionary dictionaryWithObjects:
[NSArray arrayWithObjects:uid, pwd, nil]
forKeys:[NSArray arrayWithObjects:@"uid", @"pwd", nil]];
// Load the object model via RestKit
[objectManager loadObjectsAtResourcePath:[@"/synchData" appendQueryParams:params] delegate:self];
Run Code Online (Sandbox Code Playgroud)
}
我正在后台线程中调用webservice - 该设计中是否存在导致问题的原因?我无法想象,iOS不会让后台线程运行超过60秒?我只是想不通是什么问题.
超时是从服务器获取响应或从服务器获取WHOLE响应所需的时间吗?我正在返回一个可能非常大的json响应 - 我是否需要在超时限制内返回整个内容,或者我只需要在限制内从服务器获得任何响应?
我遇到了类似的问题,委托方法requestDidTimeout:(RKRequest*)request从未被调用。无论我在 RKRequest 还是 RKClient 上设置超时。
警告:在请求上设置超时时,我发现请求不遵守设置的超时,除非我也调用[requestObject createTimeOutTimer]。
但是,我在您的实现中注意到,您使用 1000 作为 NSTimeInterval:您的意思是超时 1000 秒吗?如果您的意思是 1 秒 = 1000 毫秒,则更改为 1。
RestKit 上的默认超时为 120 秒,因此很可能这是 NSURLConnection 超时。
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |