我看到了如何使用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中删除任何必要的对象,如果它们没有以其他方式删除。