Twitter Rest API Http请求失败(Android)

时间:2015-04-06 22:59:40

标签: android api http twitter

我试图通过Twitter的Rest API获取用户的一些信息,但总是得到400响应代码(错误请求)。

TwitterAuthToken authToken = Twitter.getSessionManager().getActiveSession().getAuthToken();
OAuthSigning oauthSigning = new OAuthSigning(TwitterCore.getInstance().getAuthConfig(), authToken);

Map<String, String> authHeaders = oauthSigning.getOAuthEchoHeadersForVerifyCredentials();

try {
    URL url = new URL("https://api.twitter.com/1.1/account/verify_credentials.json");
    HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
    connection.setRequestMethod("GET");

    for (Map.Entry<String, String> entry : authHeaders.entrySet()) {
        connection.setRequestProperty(entry.getKey(), entry.getValue());
    }

    Log.v(MAIN_LOGIN_ACTIVITY_TAG, String.valueOf(connection.getResponseCode()));
} catch (IOException e) {
    e.printStackTrace();
}

我在寻找https://dev.twitter.com/es/twitter-kit/android/oauth-echo,似乎没事...... 有人可以帮我吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我通过另一种方式获得了解决方案。来自 Access Twitter's REST API TwitterCore Kit提供了一个TwitterApiClient,用于进行经过身份验证的Twitter API请求。

最后:

if (Twitter.getSessionManager().getActiveSession() != null) {
    AccountService accountService = TwitterCore.getInstance().getApiClient().getAccountService();
    accountService.verifyCredentials(false, false, new Callback<com.twitter.sdk.android.core.models.User>() {
        @Override
        public void success(Result<com.twitter.sdk.android.core.models.User> result) {
            Log.v(MAIN_LOGIN_ACTIVITY_TAG, String.valueOf(result.data.getId()));
        }

        @Override
        public void failure(TwitterException e) {
            Log.v(MAIN_LOGIN_ACTIVITY_TAG, e.getMessage());
        }
    });
}

电贺。