我看到了如何使用AFHTTPClient设置缺省标头,但我希望仅在执行对特定资源的请求时才设置某些标头。除了构建我自己的NSURLRequest (使用正确的标头),创建一个操作并将该操作排入我的AFHTTPClient子类之外,还有什么方法可以做到这一点吗?
发布于 2012-11-13 08:37:19
如果您的网络请求有很大的不同,那么创建多个AFHTTPClient子类来处理不同的情况可能会更容易。在- (id)initWithBaseURL:(NSURL *)url中添加头文件。
否则,当您使用AFHTTPClient子类创建NSURLRequest时,您可以使用几种不同的方法来设置headers:
[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中删除这些对象。
https://stackoverflow.com/questions/12667838
复制相似问题