RestKit 为所有请求添加自定义 header?
RestKit add custom header for all requests?
我正在为我的 iOS 应用程序使用 RestKit
。
我想为 所有 请求添加自定义 header。
是否可以在一个地方添加一个 header 并让我所有的 RestKit 请求都使用它?如果是这样,我应该在哪里添加代码?
如果不是 - 我是否必须为我提出的每个请求添加一个 header?
可以使用自定义 AFHTTPClient。创建 AFHTTPClient 的子类并重写 requestWithMethod:path:parameters: 方法,如下所示:
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
path:(NSString *)path
parameters:(NSDictionary *)parameters
{
[self setDefaultHeader:@"X-USER-TOKEN" value:userToken];
return [super requestWithMethod:method
path:path
parameters:parameters];
}
然后用它初始化对象管理器:
RKObjectManager *manager = [[RKObjectManager alloc]
initWithHTTPClient:customHttpClient];
初始化RKObjectManager后,可以在RKObjectManager创建的客户端上设置header:
RKObjectManager *manager = [RKObjectManager managerWithBaseURL:@"https://mycompany.example.com/rest/"];
[[manager HTTPClient] setDefaultHeader:@"X-AUTH-TOKEN" value:@"abc123"];
您不需要子类化 AFHTTPClient。
我正在为我的 iOS 应用程序使用 RestKit
。
我想为 所有 请求添加自定义 header。
是否可以在一个地方添加一个 header 并让我所有的 RestKit 请求都使用它?如果是这样,我应该在哪里添加代码?
如果不是 - 我是否必须为我提出的每个请求添加一个 header?
可以使用自定义 AFHTTPClient。创建 AFHTTPClient 的子类并重写 requestWithMethod:path:parameters: 方法,如下所示:
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
path:(NSString *)path
parameters:(NSDictionary *)parameters
{
[self setDefaultHeader:@"X-USER-TOKEN" value:userToken];
return [super requestWithMethod:method
path:path
parameters:parameters];
}
然后用它初始化对象管理器:
RKObjectManager *manager = [[RKObjectManager alloc]
initWithHTTPClient:customHttpClient];
初始化RKObjectManager后,可以在RKObjectManager创建的客户端上设置header:
RKObjectManager *manager = [RKObjectManager managerWithBaseURL:@"https://mycompany.example.com/rest/"];
[[manager HTTPClient] setDefaultHeader:@"X-AUTH-TOKEN" value:@"abc123"];
您不需要子类化 AFHTTPClient。