Cómo implementar un cliente HTTPS usando JAVA
importar java.io.*;
importar java.net.*;
importar java.security.cert.CertificateException;
importar java.security.cert.X509Certificate;
importar javax.net.ssl.*;
clase pública TrustSSL {
clase estática privada TrustAnyTrustManager implementa X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType)
lanza CertificateException {
}
public void checkServerTrusted(X509Certificate [] cadena, String authType)
lanza CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
devuelve nuevo X509Certificate [] {};
}
}
clase estática privada TrustAnyHostnameVerifier implementa HostnameVerifier {
verificación booleana pública (String hostname, SSLSession sesión) {
return true;
}
}
public static void main(String[] args) lanza una excepción {
Entrada de flujo = nulo;
Salida de flujo = nulo;
byte[] buffer = nuevo byte[4096];
Cadena str_return = "";
prueba {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() },
new java.security.SecureRandom());
consola URL = nueva URL(
"https://192.168. 1.188/test.php?username=test");
HttpsURLConnection conn = (HttpsURLConnection) consola
.openConnection();
conn.setSSL
SocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.connect();
InputStream es = conn .getInputStream();
DataInputStream indata = new DataInputStream(is);
String ret = "";
while (ret != null) {
ret = indata.readLine();
if (ret != null && !ret.trim().equals("")) {
str_return = str_return
+ new String(ret.getBytes("ISO-8859-1"), "GBK");
}
}
conn.disconnect();
} catch (ConnectException e) {
System.out.println("ConnectException");
Sistema .out.println(e);
throw e;
} catch (IOException e) {
System.out.println("IOException");
System.out.println(e);
throw e;
} finalmente {
prueba {
in.close();
} catch (Excepción e) {
}
prueba {
out.close( );
} catch (Excepción e) {
}
}
System.out.println(str_return); p>
}
}