【发布时间】:2013-05-10 23:13:03
【问题描述】:
当请求授权(或任何其他类型的请求)时,参数oauth_token和oauth_signature是否应该通过查询字符串发送或通过将它们作为值添加到您的HttpWebRequest.Header 作为NameValueCollection 添加到标题?
【问题讨论】:
-
这取决于服务器实现,oauth 规范支持两者。你在使用什么 api?
当请求授权(或任何其他类型的请求)时,参数oauth_token和oauth_signature是否应该通过查询字符串发送或通过将它们作为值添加到您的HttpWebRequest.Header 作为NameValueCollection 添加到标题?
【问题讨论】:
根据他们的示例 ruby 代码,他们正在标题中寻找它。
consumer = OAuth::Consumer.new(
"API_CONSUMER_KEY",
"API_CONSUMER_SECRET",
:site => "https://yoursite.Desk.com",
:scheme => :header
)
oauth_token 和 oauth_signature(以及以 oauth_ 开头的所有其他参数)都将作为逗号分隔的名称值对进入授权 http 标头中,如下所示 https://www.rfc-editor.org/rfc/rfc5849#section-3.5.1
这是一个使用DevDefined.OAuth library的简单示例...
var endPoint = new Uri("https://yoursite.Desk.com");
var ctx = new OAuthConsumerContext
{
ConsumerKey = "consumerkey1",
ConsumerSecret = "consumersecret1",
SignatureMethod = SignatureMethod.HmacSha1
};
var session = new OAuthSession(ctx, endPoint);
session.AccessToken = new TokenBase
{
Token = "ACCESS_TOKEN",
TokenSecret = "ACCESS_TOKEN_SCRET"
};
var respText = session.Request().Get().ForUri(endPoint).ToString();
【讨论】: