我正在尝试使用RestSharp编写OAuth 1 REST客户端,并且我遇到了一些GET请求的无效签名问题。我逐步完成了代码,似乎问题是,对于GET请求,请求参数从签名基本字符串中省略。特别是,OAuth1Authenticator.cs中的违规代码是:
// for non-GET style requests make sure params are part of oauth signature
if (request.Method != Method.GET && request.Method != Method.DELETE)
{
foreach (var p in request.Parameters.Where(p => p.Type == ParameterType.GetOrPost))
{
parameters.Add(new WebPair(p.Name, p.Value.ToString()));
}
}
如果我删除if语句,它会按预期工作。
我误解了什么吗?根据OAuth规范中的签名基本字符串示例:http://oauth.net/core/1.0a/#sig_base_example,看起来应该将这些参数添加到基本签名中。这是OAuth1Authenticator中的错误,还是我做错了什么?
谢谢!