使用 AFHTTPClient 设置非默认 HTTP 标头



我看到了如何使用AFHTTPClient设置默认标头,但我想仅在对某些资源执行请求时才设置某些标头。有没有办法比构建我自己的 NSURLRequest(使用正确的标头)、创建一个操作并将该操作排队到我的 AFHTTPClient 子类?

如果您的网络请求将有显着差异,则创建多个AFHTTPClient子类来处理不同的情况可能会更容易。在 - (id)initWithBaseURL:(NSURL *)url 中添加标题。

否则,每当使用 AFHTTPClient 子类创建 NSURLRequest 时,都可以使用几种不同的方法设置标头:

[client setDefaultHeader:@"key" value:@"value"];
[client setAuthorizationHeaderWithUsername:@"username" password:@"password"];
[client setAuthorizationHeaderWithToken:@"token"];

您可以在创建 NSURLRequest 之前设置这些内容,如下所示:

NSURLRequest *request = [client requestWithMethod:@"someMethod" path:@"somePath" parameters:someParameters];

然后,您的标头应该只在该请求中。您还可以使用 - (void)clearAuthorizationHeader 清除授权标头。从AFNetworking源代码中获取一点,您可以从NSMutableDictionary中删除任何必要的对象,如果它们没有以其他方式删除。

最新更新