RestKit 为所有请求添加自定义标头?

Posted

技术标签:

【中文标题】RestKit 为所有请求添加自定义标头?【英文标题】:RestKit add custom header for all requests? 【发布时间】:2016-04-07 12:34:03 【问题描述】:

我正在为我的 ios 应用程序使用 RestKit。 我想为 all 请求添加一个自定义标头。

是否可以在一个地方添加一个标头并让我的所有 RestKit 请求都使用它?如果是这样,我在哪里添加代码? 如果没有 - 我是否必须为我提出的每个请求添加一个标头?

【问题讨论】:

【参考方案1】:

初始化RKObjectManager后,可以在RKObjectManager创建的客户端设置header:

RKObjectManager *manager = [RKObjectManager managerWithBaseURL:@"https://mycompany.example.com/rest/"];

[[manager HTTPClient] setDefaultHeader:@"X-AUTH-TOKEN" value:@"abc123"];

您不需要子类化 AFHTTPClient。

【讨论】:

【参考方案2】:

可以使用自定义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];

【讨论】:

以上是关于RestKit 为所有请求添加自定义标头?的主要内容,如果未能解决你的问题,请参考以下文章

在网关级别的 dofilter 中为请求添加自定义标头

将请求特定的 HTTP 标头与 RestKit 一起使用

向 IMG、VIDEO 和 AUDIO 请求添加自定义标头

将自定义标头添加到“请求”

为BlazeDS和AMF发送的请求添加自定义HTTP标头

如何使用js或jQuery向ajax请求添加自定义HTTP标头?