Objective c 对受OAuth保护的URL进行GET调用

Objective c 对受OAuth保护的URL进行GET调用,objective-c,ios,oauth,nsmutableurlrequest,Objective C,Ios,Oauth,Nsmutableurlrequest,我试图在一个受OAuth保护的URL上获取一个图像。我已经看了规范文档,但似乎不能把一切都做好。以下是我正在做的: 构造OAuth授权标头: NSString *oauthHeader = @"Authorization: OAuth "; oauthHeader = [oauthHeader stringByAppendingFormat:@"oauth_consumer_key=%@",oauthConsumerKey]; oauthHeader = [oauthHeader stringB

我试图在一个受OAuth保护的URL上获取一个图像。我已经看了规范文档,但似乎不能把一切都做好。以下是我正在做的:

构造OAuth授权标头:

NSString *oauthHeader = @"Authorization: OAuth ";
oauthHeader = [oauthHeader stringByAppendingFormat:@"oauth_consumer_key=%@",oauthConsumerKey];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_token=%@",oauthAccessToken];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_signature_method=HMAC-SHA1"];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_signature=%@",escapedString];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_timestamp=%d",oauthTimeStamp];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_nonce=%@",oauthNonce];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_version=1.0"];
将授权添加到http请求:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:imageUrl]];
[request setValue:oauthHeader forHTTPHeaderField:@"Authorization"];
然后把它发送出去

我得到一个带有404代码的空响应。我确信URL是正确的,因为作为一个测试,如果我在URL上禁用OAuth保护,我可以很好地检索它


我做错了什么事,你觉得有什么值得注意的吗?非常感谢。

所有OAuth参数看起来都不错,但您的代码还远远不够完整。猜测可能是服务提供商不理解授权HTTP头,或者您未能创建有效的OAuth签名(在这种情况下,请尝试纯文本)


在每种情况下:用404回复肯定是一个错误,您应该联系OAuth提供商,尽可能提供详细信息

你说得对,我现在的签名方法是生成的,就像签名方法是纯文本一样(
escapedString
,其构造代码不包括在我的帖子中)。我正在努力获得HMAC-SHA1编码,这比我预期的要困难。你能告诉我iOS中的任何示例代码吗?谢谢。我没有任何示例代码,但我强烈建议不要自己编写OAuth签名代码。大多数编程语言都有优秀的OAuth库。