Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/09/2012, 16:33
oscarbravo
 
Fecha de Ingreso: junio-2012
Ubicación: Chile
Mensajes: 3
Antigüedad: 12 años, 9 meses
Puntos: 0
Obtener Página web con Login.

Muchachos:

Tengo la misión de recoger datos de una web, pero para acceder hasta ese lugar, se necesita pasar por un login.

Me logro loguear enviando peticiones POST, pero como recien comienzo con java, no se si lo que hago esta bien, y aún mas, al momento de recibir la pagina despues de logearme me lanza error.

¿Como lo debo hacer?
Les dejo mi codigo.

Clase LectorWeb(Principal)
Código PHP:
package web;

import java.io.*;
import java.net.*;
import javax.swing.*;
import web.post;

public class 
web extends JFrame {
    
JTextArea caja = new JTextArea("Solicitando Datos");
    public 
web() {
      
super("Lector WEB");
      
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
setSize(600300);
      
JScrollPane panel = new JScrollPane(caja);
      
add(panel);
      
setVisible(true);
    }

    
void obtenerDatos(String direccionthrows MalformedURLException {
      
setTitle(direccion);
      
URL pagina = new URL(direccion);
      
StringBuffer texto = new StringBuffer();
      try {
          
HttpURLConnection con = (HttpURLConnectionpagina.openConnection();
              
con.connect();
          
InputStreamReader in = new InputStreamReader((InputStreamcon.getContent());
          
BufferedReader buff = new BufferedReader(in);
          
caja.setText("Recibiendo Datos...");
          
String linea;
          do {
              
linea buff.readLine();
              
texto.append(linea "\n");
          } while (
linea != null);
              
caja.setText(texto.toString());
} catch (
IOException ioe) {
          
System.out.println("IO Error:" ioe.getMessage());
      }
}
public static 
void main(String[] argumentsthrows UnsupportedEncodingExceptionIOException {
      
String page "https://miportal.uss.cl/cp/home/login";
      if (
page.length() < 1) {
          
System.out.println("Lector de WEB");
          
System.exit(1);
      }
      try {
            
post peticion = new post ("https://miportal.uss.cl/cp/home/login");
            
peticion.add("user""18061");
            
peticion.add("pass""asdasd");
            
String respuesta peticion.getRespueta();
            
System.out.println(respuesta);
            
web apli = new web();
            
apli.obtenerDatos(page);
      } catch (
MalformedURLException mue) {
          
System.out.println("URL incorrecta: " page);
      }
    }


Clase POST
Código PHP:
package web;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

public class 
post {
    private 
URL url;
    
String data;

    public 
post (String urlthrows MalformedURLException{
        
this.url = new URL(url);
        
data="";
    }

    public 
void add (String propiedadString valorthrows UnsupportedEncodingException{
        
//codificamos cada uno de los valores
        
if (data.length()>0){
            
data+= "&"URLEncoder.encode(propiedad"UTF-8")+ "=" +URLEncoder.encode(valor"UTF-8");}
        else{
            
data+= URLEncoder.encode(propiedad"UTF-8")+ "=" +URLEncoder.encode(valor"UTF-8");}
    }    

    public 
String getRespueta() throws IOException {
        
String respuesta "";
        
//abrimos la conexión
        
URLConnection conn url.openConnection();
        
//especificamos que vamos a escribir
        
conn.setDoOutput(true);
        
//obtenemos el flujo de escritura
        
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        
//escribimos
        
wr.write(data);
        
//cerramos la conexión
        
wr.close();
        
//obtenemos el flujo de lectura
        
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        
String linea;
        
//procesamos al salida
        
while ((linea rd.readLine()) != null) {
            
respuesta+= linea;
        }
    return 
respuesta;
    }


¿Que debo hacer?
Saludos!!!!