【发布时间】:2012-12-13 07:32:48
【问题描述】:
我没有找到任何方法来设置 restkit 0.20.0 的超时间隔。
谁能帮忙增加超时间隔。
谢谢
【问题讨论】:
标签: restkit
我没有找到任何方法来设置 restkit 0.20.0 的超时间隔。
谁能帮忙增加超时间隔。
谢谢
【问题讨论】:
标签: restkit
继承RKHTTPRequestOperation并实现方法
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
{
NSMutableURLRequest *requestWithTimeout = [request mutableCopy];
[requestWithTimeout setTimeoutInterval:30];
return [super connection:connection willSendRequest:requestWithTimeout redirectResponse:redirectResponse];
}
【讨论】:
RestKit 现在使用 AFNetworking 作为它的 HTTP 层,所以你需要在 Restkit 的 HTTPClient 中设置它。 See this Issue 在 AFNetworking Github 上。另外,AFNetworking 的创建者 Matt 不太喜欢轻松打开超时属性的想法 (see his reason here)
我希望这能给你一些见解!
【讨论】:
为了更详细/描述性,我的代码如下:
RKHTTPRequestOperation_Timeoutable.h
#import "RKHTTPRequestOperation.h"
@interface RKHTTPRequestOperation_Timeoutable: RKHTTPRequestOperation
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse;
@end
RKHTTPRequestOperation_Timeoutable.m
#import "RKHTTPRequestOperation_Timeoutable.h"
@implementation RKHTTPRequestOperation_Timeoutable
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
{
NSMutableURLRequest *requestWithTimeout = [request mutableCopy];
[requestWithTimeout setTimeoutInterval:150];//2.5 minutes
return [super connection:connection willSendRequest:requestWithTimeout redirectResponse:redirectResponse];
}
@end
然后(这是帮助我了解的部分,其他答案中未提及),向 RKObjectManager 注册您的课程。
像这样(请原谅我的不一致,这是我在 swift 中的唯一代码段,而不是 objective c):
RKObjectManager.sharedManager().registerRequestOperationClass(Timeoutable);
【讨论】: