0

アプリのユーザー プロファイル ページを作成しようとしています。Facebook への接続に成功したので、ユーザーの基本的なプロファイルを使用してい userProfile = Profile.getCurrentProfile(); ます。今、ユーザー プロファイルの画像のドローアブルを作成して、画像ビューに配置しようとしています。このために、画像を取得するための入力ストリームを作成しました(asyncTaskで実行)

            Bitmap x;
            url =  new URL("https://graph.facebook.com/939344862743414/picture?height=200&width=200");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestProperty("User-agent","Mozilla/4.0");
            connection.setConnectTimeout(100000);
            connection.connect();
            BufferedInputStream buf = new BufferedInputStream(connection.getInputStream());
            x = BitmapFactory.decodeStream(buf);

ただし、何をしても、アプリは失敗し、connection.getInputStream() に到達するとクラッシュします。エラーは javax.net.ssl.SSLProtocolException: SSL handshake aborted です。Web でヘルプが見つかりませんでした。Facebook に接続してデータを取得できるため、認証の問題ではないようです。私が間違っていることは何ですか?

4

1 に答える 1

0

問題は URL によって作成されます。URLに含まれているためhttps、Web サーバー証明書はよく知られている CA によって発行されているため、安全な要求を行うことができます。使用HttpURLConnectionしているため、保護された URL はサポートされていません。

したがって、HttpURLConnection の代わりにhttps://..を使用して、保護された URL ( )へのアクセスを有効にすることができます。URLConnectionしたがって、次の行を変更します。

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

これで:

URLConnection connection = (URLConnection) url.openConnection();

詳細情報はこちらからご覧いただけます。

于 2015-04-09T11:04:12.153 に答える