0

こんにちは、/1.1/search/tweets.json を使用するアプリがあります。

私はこのパラメータでリクエストを行っています:

クエリ = "Hello World" カウント = 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 を超える twits がある場合、「認証できませんでした」というメッセージが表示されます。

何が間違っている可能性がありますか?

4

1 に答える 1

0

いくつかのデバッグの後、問題が見つかりました。

主な問題は、HttpUtility.UrlEncode() が "Hello World" を "Hello+World" に変換し、100 以上の twits がある場合、リクエストから返されるクエリが "Hello%2bWorld" になることです。 +World」で、すべて問題ありません。

したがって、基本的に URL エンコーディングには細心の注意を払う必要があります。

于 2013-11-14T20:05:28.343 に答える