8

restkit0.20.0でタイムアウト間隔を設定する方法が見つかりませんでした。

誰かがタイムアウト間隔を増やすのを手伝ってもらえますか?

ありがとう

4

3 に答える 3

6

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];
}
于 2013-12-11T10:22:50.780 に答える
5

RestKit は HTTP レイヤーに AFNetworking を使用するようになったため、Restkit の HTTPClient で設定する必要があります。AFNetworking Github でこの問題を参照してください。また、AFNetworking の作成者である Matt は、タイムアウト プロパティを簡単に開くという考えをあまり好みません (彼の理由はこちらをご覧ください) 。

これがあなたにいくつかの洞察を与えることができることを願っています!

于 2012-12-13T15:31:49.190 に答える
3

完全なコード

より精巧でわかりやすいように、私のコードは次のとおりです。

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);
于 2015-08-01T14:11:31.747 に答える