我看到如何使用AFHTTPClient设置默认标头,但我想仅在我对某些资源执行请求时才设置某些标头。有没有办法比构建我自己的NSURLRequest(使用正确的标题),创建一个操作并将该操作排入我的AFHTTPClient的子类?
答案 0 :(得分:6)
如果您的网络请求显着不同,则可能更容易创建多个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 source code中取一点,你可以从NSMutableDictionary中删除任何必要的对象,如果它们没有被删除。