如何在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 documentation
find它,我应该改变操作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"];