簡體   English   中英

Android Facebook SDK:SSL握手失敗

[英]Android Facebook SDK: SSL handshake failure

我有一個關於Android上的Facebook SDK的問題,這似乎是一個SSL問題,我得到的響應是:

{Response:  responseCode: unknown, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x4002f768: Failure in SSL library, usually a protocol error
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:741 0x5ba74d74:0x00000000)}, isFromCache:false}

這是我的代碼:

authButton = (LoginButton) gView.findViewById(R.id.authButton);
authButton.setFragment(this);
authButton.setUserInfoChangedCallback(mLoginBtnCallBack);

這是mLoginBtnCallBack:

LoginButton.UserInfoChangedCallback mLoginBtnCallBack = new LoginButton.UserInfoChangedCallback() {
    @Override
    public void onUserInfoFetched(GraphUser user) {
        final Session session = Session.getActiveSession();
        Log.d("Sennin32", "mLoginBtnCallBack session"+session.toString());
        if(user == null){
            Log.d("Sennin32", "mLoginBtnCallBack GraphUser Null!");
            Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
                @Override
                public void onCompleted(GraphUser user, Response response) {
                    Log.d("Sennin32", "mLoginBtnCallBack onSessionStateChange"+response.toString());
                    if (session == Session.getActiveSession()) {
                        if (user != null) {
                            GlFacebook.getInstance().SetFbId(user.getId());
                        } else {
                            Log.d("Sennin32", "mLoginBtnCallBack GraphUser Null again!");
                        }
                    }
                }
            });
            Request.executeBatchAsync(request);
        } else {
            GlFacebook.getInstance().SetFbId(user.getId());
        }
    }
};

有人得到同樣的錯誤嗎? 有什么解決辦法嗎?

我找到了導致此錯誤的原因。 這是由HttpResponseCache引起的,如果我禁用了緩存,問題就解決了。

但是我仍然想知道如何立即啟用緩存而不會出現錯誤。 我試圖通過使用HttpsURLConnection.setDefaultSSLSocketFactory和SSLContext來設置https連接。 但是它不起作用,我再次檢查了Facebook lib,發現連接是http,但是url是https,我現在不知道它了,不停地查找發生了什么。

現在,我只是簡單地禁用緩存即可使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM