C# Twitter API 1.1无法对您进行身份验证
嗨,我有一个使用/1.1/search/tweets.json的应用程序 我正在使用以下参数执行请求: query=“你好,世界” 计数=100C# Twitter API 1.1无法对您进行身份验证,c#,twitter,restsharp,C#,Twitter,Restsharp,嗨,我有一个使用/1.1/search/tweets.json的应用程序 我正在使用以下参数执行请求: query=“你好,世界” 计数=100 private static object MakeRequest(NameValueCollection parameters) { var client = new RestClient("https://api.twitter.com") { Auth
private static object MakeRequest(NameValueCollection parameters)
{
var client = new RestClient("https://api.twitter.com")
{
Authenticator = OAuth1Authenticator.ForProtectedResource(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, SECRET_ACCESS_TOKEN)
};
var request = new RestRequest("/1.1/search/tweets.json", Method.GET);
foreach (string key in parameters)
{
request.AddParameter(key, HttpUtility.UrlEncode(parameters[key]));
}
var response = client.Execute(request);
return JsonConvert.DeserializeObject(response.Content);
}
第一次它工作正常,但是如果查询有超过100个twit,则会显示“无法验证您的身份”消息
可能出了什么问题?经过一些调试后,我发现了问题 主要问题是HttpUtility.UrlEncode()将“Hello World”转换为“Hello+World”,如果我们有超过100个twits,则从请求返回的查询是“Hello%2bWorld”。将其转换为“Hello+World”,一切正常 所以基本上你必须非常小心URL编码