Twitter API 1.1无法验证您的身份

时间:2013-11-14 20:02:14

标签: c# twitter restsharp

您好我有一个使用/1.1/search/tweets.json的应用。

我正在使用以下参数进行请求:

query =“Hello World” count = 100

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次,则会显示“无法验证您”消息。

可能有什么问题?

1 个答案:

答案 0 :(得分:0)

经过一些调试后我发现了这个问题。

主要问题是HttpUtility.UrlEncode()将“Hello World”转换为“Hello + World”,如果我们有超过100个twits,则从请求返回的查询是“Hello%2bWorld”。转换为“Hello + World”,一切顺利。

所以基本上你必须非常小心URL编码。