我在尝试这个示例应用程序提供的here,在这段特定的代码中出现了“ssl is required”异常

private void askOAuth() {
        ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
        configurationBuilder.setOAuthConsumerKey(Const.CONSUMER_KEY);
        configurationBuilder.setOAuthConsumerSecret(Const.CONSUMER_SECRET);
        Configuration configuration = configurationBuilder.build();
        twitter = new TwitterFactory(configuration).getInstance();

        try {
            requestToken = twitter.getOAuthRequestToken(Const.CALLBACK_URL);
            Toast.makeText(this, "Please authorize this app!", Toast.LENGTH_LONG).show();
            this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));
        } catch (TwitterException e) {
            Log.e(TAG, e.getMessage());
        }
    }

当执行twitter.getOAuthRequestToken(Const.CALLBACK_URL);时,我得到这个异常。
我已经配置了应用程序的使用者密钥、使用者机密和回调URL。

最佳答案

解决了这个问题
如果您使用的是twitter4j version 3或更低版本,那么您必须在configurationbuilder中设置

configurationBuilder.setUseSSL(true);

因为twitter已经强制ssl发出api请求
对于twitter4j version 4,默认情况下使用ssl。

09-25 18:25