我正在使用 twitter4j 从我的应用程序发送推文。当我调用方法retrieveRequestToken时,收到错误“与服务提供者的通信失败:null”。
public static void askOAuth(Context context) {
try {
// Use Apache HttpClient for HTTP messaging
consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
provider = new CommonsHttpOAuthProvider(
"https://api.twitter.com/oauth/request_token",
"https://api.twitter.com/oauth/access_token",
"https://api.twitter.com/oauth/authorize");
String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
Toast.makeText(context, "Authorize this app!", Toast.LENGTH_LONG).show();
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
} catch (Exception e) {
Log.e(APP, e.getMessage());
Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
谢谢。
如果这是在 ICS 中,我强烈建议不要使用StrictMode.enableDefaults;
.
ICS 不允许在 UI 线程中发生 Http 请求,因此当您按照上述操作时,您会收到该错误。
要解决此问题,请执行以下操作provider.retrieveRequestToken(consumer, CALLBACK_URL);
在后台线程以及provider.retrieveAccessToken(consumer, verifier);
.
Source:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)