在我的应用程序中,我必须从我的 API 中获取一个令牌,使用它进行 base 64 编码,然后我必须将它附加到我的所有 api 请求中。
我的现状
使用 AFNetworking,我设置了我的自定义标头“授权”并将我的令牌与我自己的 base 64 编码作为用户名:密码一起发送,(这就是为什么我这样设置它是在 RestKit 中使用 setAuthenticationwithusername:andPasswordmethod)。这就是我打电话的方式。
NSString *TokenAsaHeaderValue =[NSString stringWithFormat:@"Token %@",EncodedToken];
AFHTTPClient *httpClient = [[AFHTTPClient alloc]initWithBaseURL:[NSURL URLWithString:@"http://10.11.5.205:xxxx/"]];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"GET" path:@"/Games/Current/10" parameters:nil];
[request addValue:TokenAsaHeaderValue forHTTPHeaderField:@"Authorization"];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
[httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation*operation,id responseObject)
{
self.JSONRESULTS = (NSDictionary *)responseObject;
NSLog(@"print this %@",_JSONRESULTS);
}failure:^(AFHTTPRequestOperation*operation,NSError*error){NSLog(@"Error: %@",error);}];
[operation start];
我的问题
我不知道如何映射这个。所以我想在这个电话中使用 RestKit。但是当我使用 nsurlrequest 时,我只能使用 setValue,它不会添加标题。当我尝试将其作为 nsmutableurlrequest 发送并添加值时,这是我得到的响应:
我的审判
使用 RestKit,我将这个 json 映射到应用程序委托中,然后使用 ObjectManager:
[[RKObjectManager sharedManager]setValue:TokenAsaHeaderValue forKey:@"Authorization"];
这就是我得到的回应:
setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key Authorization.'
(此外,相同的映射工作正常,我能够在我们实现令牌请求之前获取对象。)
还有什么可以帮助 我如何在没有 RestKit 的情况下仅使用 AFNetworking 进行映射的示例。
我感谢您的帮助。