我有这样一个问题,下面的小代码图片下载,其中params [0] - url和params [2] - 文件名,这个设计在Android 5.0+上运行良好,但在旧版本上,我收到一个错误:
-javax.net.ssl.SSLException:由对等方关闭的连接
@Override
protected Bitmap doInBackground(String... params) {
Bitmap bitmap = null;
InputStream is = null;
try {
is = new URL(params[0]).openStream();
} catch (IOException e) {
e.printStackTrace(); // Exception there
}
bitmap = BitmapFactory.decodeStream(is);
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
OutputStream outStream = null;
File file = new File(Constans.DATA_APPLICATION_PATH+"/photo/"+params[1].replace("\"","").trim());
try {
// make a new bitmap from file
outStream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
} catch (Exception e) {
e.printStackTrace();
}
file.deleteOnExit();
return bitmap;
}
`
答案 0 :(得分:1)
您的SSL授权存在问题,如果您使用的是自签名证书,则会出现问题。
因此,使Android应用程序连接到URL的方法是跳过SSL验证(仅当我们确定连接时)
为此,您可以添加this class并在onCreate方法
中执行new NukeSSLCerts().nuke();
它将通过信任所有证书来跳过证书验证。