我尝试使用仅限应用程序身份验证API
对twitter API进行身份验证调用NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:20.0];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"Some App Name" forHTTPHeaderField:@"User-Agent"];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
[request setHTTPBody:[@"grant_type=client_credentials" dataUsingEncoding:NSUTF8StringEncoding]];
有趣的是, authValue 没有为HTTPHeaderField @“Authorization”设置。因此我的电话当然失败了。所有其他标题字段都已正确设置。
我通过
检查NSLog(@"Authorization, %@, %@", [request valueForHTTPHeaderField:@"Authorization"], authValue);
返回 @“授权,(null),theCorrectStuff
为什么会这样?我应该能够马上设置,或者我错过了什么?
感谢您的时间和考虑, 费边
答案 0 :(得分:1)
我有同样的问题。输出你的authValue,它可能包含新行。对于仅执行base64之后的应用程序验证,您需要从authValue中删除新行,否则将不会设置标题字段。
或者只使用已编写的用于Twitter REST API 1.1(https://github.com/nst/STTwitter)的Objective-C库。