我在尝试这个示例应用程序提供的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。