2014-12-02 3 views
0

У меня есть вопрос о Facebook SDK на андроид, это, кажется, проблема SSL, ответ я получаю: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()); 
     } 
    } 
}; 

ли получить ту же ошибку, кто? Есть ли для этого решение?

+0

Можете ли вы предоставить больше информации, например, какой вызов API вы используете, некоторые строки кода ...? – dorin

+0

Привет, спасибо за ваш ответ, я добавлю некоторые коды. Я просто хочу получить идентификатор пользователя, и я сделал это раньше в других проектах, это моя первая проблема. –

+0

Не используйте SSL2 или 3. Используйте TLS. – WizKid

ответ

0

Я нашел причину этой ошибки. Это связано с HttpResponseCache, если я отключу кеш, проблема решена.

Но я все еще хочу знать, как включить кеш без ошибки. Я пытаюсь установить соединение https с помощью HttpsURLConnection.setDefaultSSLSocketFactory и SSLContext. Но это не работает, я снова проверяю библиотеку Facebook, обнаружил, что это http, но URL-адрес https, я понятия не имею об этом сейчас и продолжаю выяснять, что происходит.

Теперь я просто отключил кеш, и он работает.