使用API提供我正在尝试检索一些数据,API使用OAuth1.0在POSTMAN上完美运行。当我想在C#中使用RestSharp实现它时,它可以在其中一个API上运行,而不是在其他API上运行,回复时会出现授权错误。
API示例:
/getData
-Works on POSTMAN和RestSharp(由于这在RestSharp中有效,我假设OAuth是正确的,但我会提供代码。
/getData/search?Name=john
-Works仅在POSTMAN上,RestSharp返回身份验证错误,密钥和令牌没有更改。
const string consumerKey = "xxxxxxxxxxxxxxx";
const string consumerSecret = "xxxxxxxxxxxxxxxxxxxxxxxxx";
const string token = "xxxxxxxxxxxxxxxxxxx";
const string tokenSecret = "xxxxxxxxxxxxxxxxxxxxx";
Uri baseUrl = new Uri("https://test.com/api");
var client = new RestClient(baseUrl)
{
Authenticator = OAuth1Authenticator.ForProtectedResource(consumerKey,consumerSecret,token,tokenSecret)
};
client.FollowRedirects = false;
var request = new RestRequest("getData",Method.GET);
request.AddHeader("content-type", "application/json");
request.RequestFormat = RestSharp.DataFormat.Json;
IRestResponse response = client.Execute(request);
var content = response.Content;
我一直在盯着这几个小时尝试我能想到的一切和谷歌,但似乎没有什么工作。任何建议? 我唯一可以想到的是,是否需要有时间戳/签名,但是在RestSharp中不会有任何API工作。