0

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

当我做错事时,你有什么问题吗?非常感谢。

4

1 回答 1

1

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

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

于 2012-06-16T15:16:55.260 回答