0

私の Android アプリケーションでは、Twitter を統合しました。

user/show API バージョン 1 をバージョン 1.1 に変更しました。新しい API が機能せず、400 - Bad request 例外が発生します。解決に多くの時間を費やしましたが、解決策を見つけることができません。

version 1 api for user/show:

"https://api.twitter.com/1/users/show.json?user_id="+userID+"&include_entities=true"

version 1.1 api for user/show:

"https://api.twitter.com/1.1/users/show.json?user_id="+userID+"&include_entities=true"

include_entities=trueと なしで試しinclude_entities=falseました。

Twitter 開発者サイトを参照しました: ここにリンクの説明を入力してください

私のコードでは、API から json 応答を取得するために http GET メソッドを使用しています。

コードサンプル:

        StringBuilder builder = new StringBuilder();
        HttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(params[0]);
        try {
          HttpResponse response = client.execute(httpGet);
          StatusLine statusLine = response.getStatusLine();
          int statusCode = statusLine.getStatusCode();
          if (statusCode == 200) {
                      ----------
          } else {
            Log.e("Server code ", statusCode + " * " + statusLine+" Failed to download");
          }

Exception I get:
Server code(460): 400 * HTTP/1.1 400 Bad Request Failed to download

問題を解決するのを手伝ってください。

4

1 に答える 1

0

APIで認証を送信することで問題を解決しました。

API バージョン 1.1 では、リクエストで認証を送信する必要があります。そうしないと、400 の不正なリクエスト (無効なリクエスト) が返されます。

これは、認証を送信するためのコーディング例です。

private OAuthConsumer consumer;

consumer = new CommonsHttpOAuthConsumer(
Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);

consumer.setTokenWithSecret(token,secret_token);

..........

HttpGet httpGet = new HttpGet(params[0]);
consumer.sign(hpost);

署名コアが必要で、共通のポスト jar に署名します。

于 2013-06-24T15:52:23.357 に答える