java – 禁用HTTPS连接的SSL证书验证?
发布时间:2020-05-24 23:02:16 所属栏目:Java 来源:互联网
导读:参见英文答案 java.security.cert.CertPathValidatorException: Trust anchor for certification path not found3个 当我想打开HTTPS连接时,我得到SSL异常.如何设置HttpURLConnection以对此异常不敏感? 我的代码是:
|
参见英文答案 >
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found3个
我的代码是: private String getData() {
String response = null;
String connection = "https://www.kamalan.com/";
try {
URL url = new URL(connection);
Log.i(TAG,"Try to open: " + connection);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
int responseCode = conn.getResponseCode();
Log.i(TAG,"Response code is: " + responseCode);
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
if (in != null) {
StringBuilder strBuilder = new StringBuilder();
int ch = 0;
while ((ch = in.read()) != -1)
strBuilder.append((char) ch);
// get returned message and show it
response = strBuilder.toString();
Log.i("JSON returned by server:",response);
}
in.close();
} else {
Log.e(TAG,"Couldn't open connection in getResepiItems()");
}
} catch (SSLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return response;
}
解决方法按照以下方法,它适合我.URL url = new URL("Your URL");
HttpsURLConnection urlConnection =(HttpsURLConnection) url.openConnection(); urlConnection.setSSLSocketFactory(SSLCertificateSocketFactory.getInsecure(0,null));
urlConnection.setHostnameVerifier(getHostnameVerifier());
InputStream is = urlConnection.getInputStream();
OutputStream os = new FileOutputStream(downloadedFile);
byte[] data = new byte[1024];
int count;
while ((count = is.read(data)) != -1) {
os.write(data,count);
}
os.flush();
os.close();
is.close();
以下方法用于设置主机名 private HostnameVerifier getHostnameVerifier() {
HostnameVerifier hostnameVerifier = new HostnameVerifier() {
@Override
public boolean verify(String hostname,SSLSession session) {
HostnameVerifier hv =
HttpsURLConnection.getDefaultHostnameVerifier();
return hv.verify("com.example.com",session);
}
};
return hostnameVerifier;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
