restkit0.20.0でタイムアウト間隔を設定する方法が見つかりませんでした。
誰かがタイムアウト間隔を増やすのを手伝ってもらえますか?
ありがとう
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 は HTTP レイヤーに AFNetworking を使用するようになったため、Restkit の HTTPClient で設定する必要があります。AFNetworking Github でこの問題を参照してください。また、AFNetworking の作成者である Matt は、タイムアウト プロパティを簡単に開くという考えをあまり好みません (彼の理由はこちらをご覧ください) 。
これがあなたにいくつかの洞察を与えることができることを願っています!
より精巧でわかりやすいように、私のコードは次のとおりです。
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 に登録します。
そのように(私の矛盾を許してください、これは私のコードの唯一のセグメントであり、目的の cではありません):
RKObjectManager.sharedManager().registerRequestOperationClass(Timeoutable);