Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Lectura http y https desde java

Estoy tratando de seguir el siguiente tutorial (http://chuwiki.chuidiang.org/index.php?title=Lectura_http_y_https_desde_java) para hacer una conexión HTTPS desde java, pero me estoy encontrando con el siguiente error:

java.io.IOException: Authentication failure at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1623)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:164)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
at myproject.Prueba_URL.main(Prueba_URL.java:52)

mi codigo en Jdeveloper es :


package myproject;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;

public class Prueba_URL{
public static void main(String[] args) {
try {
// Carga del fichero que tiene los certificados de los servidores en
// los que confiamos.
InputStream fileCertificadosConfianza = new FileInputStream(new File("c:/unpath/.keystore"));
KeyStore ksCertificadosConfianza = KeyStore.getInstance(KeyStore.getDefaultType());
ksCertificadosConfianza.load(fileCertificadosConfianza,"87654321".toCharArray());
fileCertificadosConfianza.close();

// Ponemos el contenido en nuestro manager de certificados de
// confianza.
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ksCertificadosConfianza);

// Creamos un contexto SSL con nuestro manager de certificados en los
// que confiamos.
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
SSLSocketFactory sslSocketFactory = context.getSocketFactory();

// Abrimos la conexión y le pasamos nuestro contexto SSL
URL url = new URL("https://www.bet365.es/home/FlashGen4/WebConsoleApp.asp?rn=30454870898&stf=1");
URLConnection conexion = url.openConnection();
((HttpsURLConnection) conexion).setSSLSocketFactory(sslSocketFactory);

// Ya podemos conectar y leer
conexion.connect();
InputStream is = conexion.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
char[] buffer = new char[1000];
int leido;
while ((leido = br.read(buffer)) > 0) {
System.out.println(new String(buffer, 0, leido));
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeyManagementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


Muchas Gracias !!!

agosto 24, 2016 | Unregistered CommenterGian