AFNetworking 2.0:传递标头信息
Posted
技术标签:
【中文标题】AFNetworking 2.0:传递标头信息【英文标题】:AFNetworking 2.0: Passing header information 【发布时间】:2014-04-17 13:44:33 【问题描述】:我是 AFNetworking 的新手,我知道如何传递 URL 参数。但是我如何将标头传递给同一个调用。
我也继承了我的 AFHTTPSessionManager
请参阅下面的代码:
- (void)getExpenses:(NSString *)page
success:(void (^) (NSArray *myExpenses))success
failure:(RequestFailureBlock)failure
NSString *resourceURL = [NSString stringWithFormat:@"%@/expenses/", APIBaseURLString];
NSDictionary *parameters = @@"page":page, @"Authorization": APIAuthorization;
[self getExpenses:resourceURL parameters:parameters success:success failure:failure];
【问题讨论】:
你用的是get方法还是post方法? 查看文档cocoadocs.org/docsets/AFNetworking/2.0.0/Classes/… 我正在使用 GET 方法。 仅供参考,我正在继承 AFHTTPSessionManager。我想不通。请帮忙。 【参考方案1】:setAuthorizationHeaderFieldWithToken is deprecated 由于servers having different requirements about how the access token 被发送(令牌、承载等)
michaels 的回答是正确的,使用
[self.requestSerializer setValue:@"Some-Value" forHTTPHeaderField:@"Header-Field"];
或
[self.requestSerializer setAuthorizationHeaderFieldWithUsername:@"" password:@""];
基本认证
【讨论】:
【参考方案2】:您在 AFHTTPSessionManager 的 requestSerializer 属性上设置标头值:
[self.requestSerializer setValue:@"Some-Value" forHTTPHeaderField:@"Header-Field"];
编辑:
您似乎正在尝试设置授权;也有一种方法:
[self.requestSerializer setAuthorizationHeaderFieldWithUsername:@"" password:@""];
// OR
[self.requestSerializer setAuthorizationHeaderFieldWithToken:@""];
如果您需要设置 Content-Type
标头,请参阅 this SO answer 了解如何设置
【讨论】:
请注意,这不适用于Content-Type
标头;见github.com/AFNetworking/AFNetworking/issues/1884
我特别需要设置Content-Type
用如何设置Content-Type
header 的链接编辑了我的答案
说 setAuthorizationHeaderFieldWithToken 已弃用。
哪个版本?我没有看到它在 2.2.1 docs 中被弃用以上是关于AFNetworking 2.0:传递标头信息的主要内容,如果未能解决你的问题,请参考以下文章
如何为已弃用的 AFNetworking 2.0 传递授权令牌
AFNetworking 2.0 和授权 Imgur API
AFNetworking 2.0 中的 AFHTTPRequestOperationManager 如何传递 HTTPBody 标签