如何在JSONRequestOperation上将自定义标题添加到AFNetworking

嗨,我有以下代码访问一个URL:

NSString * stringURL = [NSString stringWithFormat:@"%@/%@/someAPI", kSERVICE_URL, kSERVICE_VERSION]; NSURLRequest * request = [NSURLRequest requestWithURL:[NSURL URLWithString:stringURL]]; AFJSONRequestOperation * operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { completionHandler(JSON, nil); } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { completionHandler(nil, error); }]; 

但是我希望将用户标记作为HEADER上的parameter passing,如X-USER-TOKEN

不能在AFNetworking documentationfind它,我应该改变操作types?

使用AFHTTPClient或它的子类!

您可以使用-setDefaultHeader:value:来设置默认标题-setDefaultHeader:value:像这样:

 [self setDefaultHeader:@"X-USER-TOKEN" value:userToken]; 

您可以检查文档

 NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url]; [request setValue: @"X-USER-TOKEN" forHTTPHeaderField:@"< clientToken >"]; [AFJSONRequestOperation JSONRequestOperationWithRequest: request ...] 

我做到了这一点:)

 [manager.requestSerializer setValue:[NSString stringWithFormat:@"Token token=\"%@\"", _userObj.oAuth] forHTTPHeaderField:@"Authorization"]; 

如果你有一个抽象层,让我们说APIManager,那么你应该在一个特定的方法内执行以下操作

  [[HTTPClient sharedHTTPClient].requestSerializer setValue:YOUR_KEY forHTTPHeaderField:@"X-Register"];