OGeek|极客世界-中国程序员成长平台

标题: ios - 如何在 AFNetworking 中设置授权 header [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 10:22
标题: ios - 如何在 AFNetworking 中设置授权 header

我试图通过子类化 AFHTTPClient 并设置基本路径来实现 AFNetworking 客户端

#define BaseURLString @"http://company.com/api/"

@implementation WineAPIClient

+(id)sharedInstance{
  static APIClient *__sharedInstance;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    __sharedInstance = [APIClient alloc]initWithBaseURL:[NSURL URLWithString:BaseURLString]];
});
return __sharedInstance;
}

- (id)initWithBaseURLNSURL *)url
{
 self = [super initWithBaseURL:url];
if(self){
    [self setParameterEncoding:AFJSONParameterEncoding];
    [self registerHTTPOperationClass:[AFJSONRequestOperation class]];
}

return self;
}

@end

这就是我向服务器发出请求的方式:

[[APIClient sharedInstance] getPath"wines"
                               parameters:nil
                               success:^(AFHTTPRequestOperation *operation, id responseObject) {
                                        NSLog(@"%@", responseObject);

                               }
                               failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                        NSLog(@"Error fetching wines!");
                                        NSLog(@"%@",error);
                               }];

现在我有一个名为 LoginViewController 的类,它获取我登录的 token 号。

现在我的问题是如何在我的 AFHttpClinet 类中将 token 设置为授权 header 。

并使用 Authorization header 发出其他请求。

谁能帮我解决这个问题?



Best Answer-推荐答案


您可以使用 AFNetworking 的方法 setAuthorizationHeaderWithUsername:password:

+(id)sharedInstance{
  static APIClient *__sharedInstance;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
  __sharedInstance = [APIClient alloc]initWithBaseURL:[NSURL URLWithString:BaseURLString]];
  [__sharedInstance setAuthorizationHeaderWithUsername"username" password"password"];
  });
  return __sharedInstance;
}

+(id)sharedInstance{
  static APIClient *__sharedInstance;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
  __sharedInstance = [APIClient alloc]initWithBaseURL:[NSURL URLWithString:BaseURLString]];
  });
  return __sharedInstance;
}

- (void)updateAuthorizationHeaderUsernameNSString *)username PasswordNSString *)password
{
    [self setAuthorizationHeaderWithUsername:username password:password];
}

- (void)updateAuthorizationHeaderNSString *)token
{
    [self setDefaultHeader"token" value:token];
}

关于ios - 如何在 AFNetworking 中设置授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24160766/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4