首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSURLRequest setValue: forHTTPHeaderField:@“授权”不起作用

NSURLRequest setValue: forHTTPHeaderField:@“授权”不起作用
EN

Stack Overflow用户
提问于 2013-08-31 12:42:23
回答 1查看 5.5K关注 0票数 2

我尝试使用应用程序专用身份验证API对twitter进行身份验证调用。

代码语言:javascript
运行
复制
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 @“授权”。因此,我的电话当然失败了。所有其他标头字段都已正确设置。

我查过了

代码语言:javascript
运行
复制
NSLog(@"Authorization, %@, %@", [request valueForHTTPHeaderField:@"Authorization"], authValue);

它返回@“授权,(null),theCorrectStuff

为什么会发生这种情况?我应该能马上把它设置好,还是我遗漏了什么?

谢谢你的时间和考虑,法比安

EN

Stack Overflow用户

回答已采纳

发布于 2013-09-17 14:54:49

我也有过同样的问题。输出您的authValue,它可能包含新的行。对于应用程序只进行身份验证,在执行base64之后,您需要从authValue中删除新行,否则将不会设置标头字段。

或者只需使用已经编写好的Objective库用于Twitter 1.1 (https://github.com/nst/STTwitter)。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18548248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档