Saltar al contenido

Cómo ejecutar una solicitud https GET desde Java

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *