Deseamos regalarte la mejor información que descubrimos por todo internet. Queremos que te sea de utilidad y si puedes aportar cualquier detalle que nos pueda ayudar a perfeccionar nuestra información hazlo con total libertad.
este es mi cliente https rápido y sucio en Java, que ignora los certificados no válidos y se autentica usando BASIC
import java.io.IOException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
public static HttpsURLConnection getConnection(boolean ignoreInvalidCertificate, String user, String pass, HttpRequestMethod httpRequestMethod, URL url) throws KeyManagementException, NoSuchAlgorithmException, IOException
SSLContext ctx = SSLContext.getInstance("TLS");
if (ignoreInvalidCertificate)
ctx.init(null, new TrustManager[] new InvalidCertificateTrustManager() , null);
SSLContext.setDefault(ctx);
String authStr = user+":"+pass;
String authEncoded = Base64.encodeBytes(authStr.getBytes());
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setRequestProperty("Authorization", "Basic " + authEncoded);
if (ignoreInvalidCertificate)
connection.setHostnameVerifier(new InvalidCertificateHostVerifier());
return connection;
—
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;
public class InvalidCertificateHostVerifier implements HostnameVerifier
@Override
public boolean verify(String paramString, SSLSession paramSSLSession)
return true;
—
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
/**
* ignore invalid Https certificate from OPAM
* see http://javaskeleton.blogspot.com.br/2011/01/avoiding-sunsecurityvalidatorvalidatore.html
*/
public class InvalidCertificateTrustManager implements X509TrustManager
@Override
public X509Certificate[] getAcceptedIssuers()
return null;
@Override
public void checkServerTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException
@Override
public void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException
tal vez sea algo con lo que puedas empezar.
por supuesto, ya que tiene la conexión, puede recuperar el contenido de la respuesta usando
InputStream content = (InputStream) connection.getInputStream();
Al final de la artículo puedes encontrar las críticas de otros desarrolladores, tú además puedes dejar el tuyo si te apetece.