Foros del Web » Programación para mayores de 30 ;) » Java »

Problema autentificacion mediante protocolo http

Estas en el tema de Problema autentificacion mediante protocolo http en el foro de Java en Foros del Web. Hola, estoy intentando recoger los datos de una web. Para ello hago uso de la clase HttpURLConnection atraves de ella soy capaz de obtener el ...
  #1 (permalink)  
Antiguo 04/11/2007, 13:01
 
Fecha de Ingreso: junio-2005
Mensajes: 60
Antigüedad: 18 años, 11 meses
Puntos: 0
Problema autentificacion mediante protocolo http

Hola, estoy intentando recoger los datos de una web. Para ello hago uso de la clase HttpURLConnection atraves de ella soy capaz de obtener el codigo html que se genera por ejemplo en la pantalla principal. El problema me surge cuando quiero obtener esto de otra pagina la cual requiere password y login para acceder a ella. He buscado mucho por Internet y no consigo encontrar nada. ¿Alquien me puede echar una mano?

Gracias.

Edito: Para logearse hay un formulario que envia datos por POST.

Última edición por JoeCole; 04/11/2007 a las 15:02 Razón: Añadir informacion
  #2 (permalink)  
Antiguo 05/11/2007, 01:11
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema autentificacion mediante protocolo http

Aunque principalmente se use para hacer tests de programas, la libreria htmlunit te puede servir para eso, ya que permite mantener un "dialogo" con un servidor web, enviar datos a formularios etc.

http://htmlunit.sourceforge.net/gettingStarted.html

La otra opcion es hacerlo "a mano". Es decir, primero tienes que acceder a la URL donde envia el formulario de login, enviando los parametros, para poder hacer login, guardar la cookie de session y luego usarla en posteriores llamadas etc.

S!
  #3 (permalink)  
Antiguo 05/11/2007, 13:21
 
Fecha de Ingreso: junio-2005
Mensajes: 60
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Problema autentificacion mediante protocolo http

Primeramente dar las gracias a GreenEyed por la respuesta.

Voy a poner el codigo porque sigo sin poder hacerlo :(

Yo tengo lo siguiente:

Código PHP:
class ConnectionTest {

    public static 
void main(String[] argsthrows Exception {
       
URL url = new URL("URL_de_pagina_con_formulario_para_loguearse");
       
URLConnection conexion =  url.openConnection(); 
       
String consulta "logindata.username=mi_username&logindata.password=mi_password";
       
       
conexion.setDoOutput(true);
       
OutputStreamWriter out = new OutputStreamWriter(conexion.getOutputStream());
       
out.write(consulta);       
       
out.flush();
              
       
BufferedReader in = new BufferedReader(new InputStreamReader(conexion.getInputStream()));
       
String linea null;
       
String Salida ="";
            
       while ((
linea in.readLine()) != null) {
             
Salida += linea;
            }
            
       
out.close();
       
in.close();
        
       
System.out.println(Salida);
       
System.out.println(conexion.getURL());
        
        
    }

El formulario el cual quiero enviar los datos seria algo asi:


Código PHP:
<form method="post" name="logindata" onSubmit="return safeLogin(this);">
<
input  type=text name=username value="Usuario">
<
input  type=password name=password value="Contraseña">
<
td onClick="button_onClick('login_button', 'safeLogin(this);', 'single', 'normal')" align="center" valign="center" class="button_normal_middle"></d
Este formulario en si, no es el que realmente me valida, este lo que haces es al pulsar llamar a una funcion JavaScript que codifica el password y el login y este ya envia la peticion al servidor, pero evidentemente tengo que meter los datos en ese formualrio para que mis datos enviados pasen por esa funcion JavaScript.

El que valida es este:
Código PHP:
<form action="/?p=login&uqid=1194283667" method="post" name="login" onsubmit="">
  <
input type="hidden" name="logindata[md5]" value="">
  <
input type="hidden" name="md5c" value="14ae9c690b3ac43845b69183652e6332">
  <
input type="hidden" name="logindata[username]" value="">
 </
form
No se si me explico..
  #4 (permalink)  
Antiguo 06/11/2007, 01:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema autentificacion mediante protocolo http

Solo con URLConnection no puedes "imitar" la parte de que el JavaScript encripta el password etc. eso lo hace el navegador y tu estas comunicandote directamente con el servidor, sin navegador de por medio.

O haces tu de navegador, encriptando los datos antes de enviarlos etc., o utilizas alguna libreria que "imite" el comportamiento del navegador y te ejecute el JavaScript etc. No se si las que te mencione antes lo hacen, ya que no lo he probado.

S!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:33.