AFNetworking 2.0: 传递头信息

3

我刚接触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方法? - Nirav Jain
请查看文档 http://cocoadocs.org/docsets/AFNetworking/2.0.0/Classes/AFHTTPRequestSerializer.html#//api/name/setValue%3aforHTTPHeaderField%3a - dibi
我正在使用GET方法。 - warrantsuspect
FYI,我正在对AFHTTPSessionManager进行子类化。我无法弄清楚这个问题。请帮忙。 - warrantsuspect
2个回答

6

0

你可以在 AFHTTPSessionManager 的 requestSerializer 属性上设置头部值:

[self.requestSerializer setValue:@"Some-Value" forHTTPHeaderField:@"Header-Field"];

编辑:

看起来你正在尝试设置授权;也有一种方法可以实现:

[self.requestSerializer setAuthorizationHeaderFieldWithUsername:@"" password:@""];
// OR
[self.requestSerializer setAuthorizationHeaderFieldWithToken:@""];

如果你需要设置 Content-Type 头部,请参考这篇 stackoverflow答案 来了解如何做到这一点。

请注意,这对于“Content-Type”标头不起作用;请参见https://github.com/AFNetworking/AFNetworking/issues/1884。 - Aaron Brager
我已编辑我的回答,并附上了设置“Content-Type”标头的链接。 - mspensieri
setAuthorizationHeaderFieldWithToken已被弃用。 - warrantsuspect
是的,它已经被弃用了,因为没有通用的约定。请使用-setValue:forHTTPHeaderField:代替。 - Xiangyu
当您尝试使用setValue:forHTTPHeaderField:方法设置包含冒号(:)的值的授权标头时,会出现JSON错误。 - morph85
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接