【发布时间】:2013-12-03 05:38:22
【问题描述】:
Imgur's API 要求您只需使用您的 API 密钥授权您的应用程序,就可以简单地查找有关图像的信息,而无需使用帐户或任何东西登录。
上面写着:
...您需要做的就是在您的请求中发送带有您的 client_id 的授权标头
显然看起来像:
Authorization: Client-ID YOUR_CLIENT_ID
所以我尝试使用AFHTTPRequestOperationManager 执行此操作,这似乎是AFNetworking 2.0 中AFHTTPClient 的替代品,如下所示:
AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager 管理器];
[operationManager POST:@"https://api.imgur.com/3/image/1Nf1quS" parameters:@{@"Authorization": @"Client-ID ---"} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"failure");
}];
基本上是尝试发送带有授权信息的请求(我为这篇文章删除了我的 ID)。然而,它一直给出“失败”作为响应。
所以我尝试使用credential 属性,但NSURLCredential 似乎基于用户名和密码,而我没有这些,因为我只需要我的客户 ID。
所以我又尝试了一种完全不同的方法:
AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
NSMutableURLRequest *request= [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://api.imgur.com/3/image/1Nf1quS"]];
[request addValue:@"Client-ID ---" forHTTPHeaderField:@"Authorization"];
[operationManager HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"fail");
}];
这次使用授权的东西作为请求的值。但是这个实际上从来没有记录过任何东西。
我对 API 的使用还很陌生,所以我真的很困惑我做错了什么。
【问题讨论】:
标签: ios objective-c api afnetworking imgur