【问题标题】:Making a GET call on an OAuth protected URL对受 OAuth 保护的 URL 进行 GET 调用
【发布时间】:2012-06-16 23:16:55
【问题描述】:

我正在尝试获取位于受 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 保护,我能够很好地检索它。

当我做错事时,你有什么特别的吗?非常感谢。

【问题讨论】:

    标签: objective-c ios oauth nsmutableurlrequest


    【解决方案1】:

    所有 OAuth 参数看起来都不错,但您的代码还远未完成。一个疯狂的猜测是服务提供商不理解 Authorization HTTP 标头,或者您未能创建有效的 OAuth 签名(在这种情况下尝试可能是 PLAINTEXT)。

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

    【讨论】:

    • 你说得对,我现在的签名方法是生成的,好像签名方法是PLAINTEXT(escapedString,我的帖子中没有包含其构造代码)。我正在努力获得 HMAC-SHA1 编码,这比我预期的要困难。您可以指出iOS中的任何示例代码吗?谢谢。
    • 我没有任何示例代码,但我强烈建议不要自己编写 OAuth 签名代码。大多数可用的编程语言都有出色的 OAuth 库。
    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多