android - Twitter4J + Android : Authentication Challenge is Null Exception

标签 android twitter oauth twitter-oauth twitter4j

我正在使用 Twitter4J 库进行 OAuth 身份验证,但我什至在它打开 Twitter 登录页面之前就收到“身份验证挑战是空异常”。

这是代码。

    Twitter twitter = new TwitterFactory().getInstance();
    try
    {

        twitter.setOAuthConsumer(Startup.TWITTER_KEY, Startup.TWITTER_SECRET);

        String callbackURL = "twitter-client:///";

        RequestToken rToken = twitter.getOAuthRequestToken(callbackURL);

        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(rToken.getAuthenticationURL())));

    }
    catch(IllegalStateException e)
    {
    // access token is already available, or consumer key/secret is not set.
        if(!twitter.getAuthorization().isEnabled()){
            System.out.println("OAuth consumer key/secret is not set.");
            System.exit(-1);
        }
    }
    catch(Exception e)
    {
        Toast.makeText(Home.this, "Network Host not responding: "+e.getMessage(),Toast.LENGTH_SHORT).show();  //This exception. 
    }

异常(exception):

E/Home ( 4393): Received authentication challenge is null E/Home ( 4393): Received authentication challenge is nullRelevant discussions can be on the Internet at: E/Home ( 4393): http://www.google.co.jp/search?q=6c607809 or E/Home ( 4393): http://www.google.co.jp/search?q=0f1d8134 E/Home ( 4393): TwitterException{exceptionCode=[6c607809-0f1d8134 cab4c0ac-d492a113], statusCode=-1, retryAfter=0, rateLimitStatus=null, version=2.2.2} E/Home ( 4393): at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:204) E/Home ( 4393): at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65) E/Home ( 4393): at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:102) E/Home ( 4393): at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:108) E/Home ( 4393): at twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:271) E/Home ( 4393): at com.sharj.trafik.view.Home.askOAuth(Home.java:157) E/Home ( 4393): at com.sharj.trafik.view.Home.access$0(Home.java:143) E/Home ( 4393): at com.sharj.trafik.view.Home$3.onClick(Home.java:110) E/Home ( 4393): at android.view.View.performClick(View.java:2485) E/Home ( 4393): at android.view.View$PerformClick.run(View.java:9080) E/Home ( 4393): at android.os.Handler.handleCallback(Handler.java:587) E/Home ( 4393): at android.os.Handler.dispatchMessage(Handler.java:92) E/Home ( 4393): at android.os.Looper.loop(Looper.java:130) E/Home ( 4393): at android.app.ActivityThread.main(ActivityThread.java:3683) E/Home ( 4393): at java.lang.reflect.Method.invokeNative(Native Method) E/Home ( 4393): at java.lang.reflect.Method.invoke(Method.java:507) E/Home ( 4393): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) E/Home ( 4393): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) E/Home ( 4393): at dalvik.system.NativeStart.main(Native Method) E/Home ( 4393): Caused by: java.io.IOException: Received authentication challenge is null E/Home ( 4393): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.processAuthHeader(HttpURLConnectionImpl.java:1153) E/Home ( 4393): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.processResponseHeaders(HttpURLConnectionImpl.java:1095) E/Home ( 4393): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1048) E/Home ( 4393): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:726) E/Home ( 4393): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:121) E/Home ( 4393): at twitter4j.internal.http.HttpResponseImpl.(HttpResponseImpl.java:35) E/Home ( 4393): at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:168) E/Home ( 4393): ... 18 more

它包含以下链接,但谷歌对此不多。

http://www.google.co.jp/search?q=6c607809

http://www.google.co.jp/search?q=0f1d8134

最佳答案

我遇到了同样的问题。事实证明,如果 oAuth 调用的时间戳不正确,服务器将返回 401 状态错误,这在 Android 设备上会导致抛出“收到的身份验证挑战为空”异常。所有遇到此问题的设备的时间都不正确,修复时间可以解决问题。

也许这也是您的问题?

关于android - Twitter4J + Android : Authentication Challenge is Null Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6129316/

相关文章:

android - 如何以编程方式从 Android 中的抽屉导航中删除子菜单?

android - 在 Android 12 上未收到 Firebase 推送通知

java - 在eclipse中设置的android项目显示一些错误

android - BillingFlowParams.Builder setSkuDetails 用于测试静态 Google Play 结算响应

twitter - 如何将 Canvas 图像分享到Twitter?

oauth - 在 Postman 中以编程方式获取 oAuth 2.0 的新访问 token

twitter - 如何使用 tweepy for Streaming API 获取位置明智的推文?

javascript - 从纬度/经度坐标获取一个单词

ruby-on-rails - ruby on Rails Rest Api + oAuth

Ruby google_drive gem oAuth2 保存