我打算建议修改 AFRESTClient 以从 AFOAuth1Client 继承,但我发现这个拉取请求,其中 Matt 声明 AFOAuth1Client 是为了与您的客户端子类分开:https ://github.com/AFNetworking/AFOAuth1Client/pull/6
我已经广泛使用 AFNetworking,但我编写了自己的身份验证,而不是使用 AFOAuth1Client。在那我覆盖了我的 AFHTTPClient 子类中的 requestWithMethod 。授权头不是静态的,它取决于每个请求的路径和参数。
结合上述 Matt 的指导,我认为您应该将 authClient 属性添加到您的 Client 子类中,然后将该客户端计算的令牌添加到您自己的请求中 - 类似于 AFOAuth1Client 本身的方式。
我不确定这一点,但我会试一试。
// 在你的 AFRestClient 子类中
@property(nonatomic, strong) AFOAuth1Client *authClient;
...
- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
path:(NSString *)path
parameters:(NSDictionary *)parameters
{
NSMutableURLRequest *request = [super requestWithMethod:method path:path parameters:parameters];
NSString *authorizationHeader = [self.authClient authorizationHeaderForMethod:method path:path parameters:parameters];
[request setValue:authorizationHeader forHTTPHeaderField:@"Authorization"];
return request;
}
在发出第一个请求之前,您将初始化 authClient 并获得 [self.authClient authorizeUsingOAuthWithRequestTokenPath:...]