我正在尝试为我的应用创建用户个人资料页面。
我成功连接到Facebook,所以我使用userProfile = Profile.getCurrentProfile();
获得用户基本个人资料
现在我正在尝试创建一个用户个人资料图片的drawable放入图像视图。为此,我创建了一个输入流来获取图像(在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握手中止 我在网上找不到任何帮助。它似乎不是授权问题,因为我可以连接到Facebook并获取数据。 我做错了什么?
答案 0 :(得分:0)
该问题由网址创建。由于 URL 包含https
,这意味着Web服务器证书由知名CA颁发,因此您可以发出安全请求。当您使用HttpURLConnection
时,它不支持安全网址。
因此,您可以在HttpURLConnection的位置使用https://..
启用对安全网址(URLConnection
)的访问权限。所以修改以下行:
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
这一个:
URLConnection connection = (URLConnection) url.openConnection();