如何在JSONRequestOperation上向AFNetworking添加自定义标头

And*_*ryn 19 json objective-c nsurlrequest ios 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);
}];
Run Code Online (Sandbox Code Playgroud)

但我想将用户令牌作为参数传递HEADER,如X-USER-TOKEN.

无法找到它AFNetworking documentation,我应该更改操作类型吗?

Mox*_*oxy 30

使用AFHTTPClient或子类化它!

您可以-setDefaultHeader:value:像这样设置默认标头:

[self setDefaultHeader:@"X-USER-TOKEN" value:userToken];
Run Code Online (Sandbox Code Playgroud)

您可以查看文档

  • 对于AFN版本2.x和AFHTTPRequestOperationManager,你可以这样做:[manager.requestSerializer setValue:@"application/json"forHTTPHeaderField:@"Accept"]; (12认同)

Mr *_*our 28

NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];

[request setValue: @"X-USER-TOKEN"  forHTTPHeaderField:@"< clientToken >"];

[AFJSONRequestOperation JSONRequestOperationWithRequest: request ...]
Run Code Online (Sandbox Code Playgroud)


Sur*_*oza 8

我做了这个:)

[manager.requestSerializer setValue:[NSString stringWithFormat:@"Token token=\"%@\"", _userObj.oAuth] forHTTPHeaderField:@"Authorization"];
Run Code Online (Sandbox Code Playgroud)