您好我有一个使用/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次,则会显示“无法验证您”消息。
可能有什么问题?
答案 0 :(得分:0)
经过一些调试后我发现了这个问题。
主要问题是HttpUtility.UrlEncode()将“Hello World”转换为“Hello + World”,如果我们有超过100个twits,则从请求返回的查询是“Hello%2bWorld”。转换为“Hello + World”,一切顺利。
所以基本上你必须非常小心URL编码。