我试图通过子类化 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-推荐答案 strong>
您可以使用 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/
|