Fazer login em um site usando URL e HttpURLConnection

Olá a todos,
eu estou precisando de ajuda com um programa em java que estou desenvolvendo.

Bem, a maioria já deve conhecer o megaupload. Eu possuo uma conta premium neste site
e estou qurendo fazer um programa que capture o link premium da página, sem que eu precise ficar
entrando no site toda hora que quero baixar algo, ainda mais quando são arquivos quem estão divididos
em dezenas de partes.

Eu percebi que após fazer login na minha conta, ao acessar o link normal de um arquivo, o link premium aparece
na página.

Então, para fazer o que eu quero, eu passaria o link normal do arquivo ao meu programa, e então o programa
acessaria o site do megaupload, faria login em minha conta, e após o login ter sido feito, eu procuraria pelo
link no código fonte da página.

Eu já comecei a pesquisar e a fazer algo usando URL e HttpURLConnection, com isso consegui o html da pagina, mas não encontrei o que eu queria, porisso
não tenho certeza se realmente eu consegui fazer o login na pagina.

aqui vai o código:

[code]import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Properties;

public class AcessaPagina {

InputStream stream;
BufferedReader rd;
OutputStreamWriter wr;
FileOutputStream fos;

public AcessaPagina() throws IOException {

	try {
		URL url;
		HttpURLConnection urlConn;
		DataInputStream dis;

		String headerName = null;
		String sessionCookie = null;

		url = new URL("http://www.megaupload.com/?c=login");

		urlConn = (HttpURLConnection) url.openConnection();
		urlConn.setInstanceFollowRedirects(false);
		urlConn.setDoOutput(true);

		String data = URLEncoder.encode("username", "UTF-8")
				+ "="
				+ URLEncoder.encode("nomedeusuario",
						"UTF-8");
		data += "&"
				+ URLEncoder.encode("password", "UTF-8")
				+ "="
				+ URLEncoder.encode("senha",
						"UTF-8");

		wr = new OutputStreamWriter(urlConn.getOutputStream());
		wr.write(data);
		wr.flush();

		for (int i = 1; (headerName = urlConn.getHeaderFieldKey(i)) != null; i++) {
			if (headerName.equalsIgnoreCase("Set-Cookie")) {
				if (sessionCookie == "") {
					sessionCookie = urlConn.getHeaderField(i);
				} else {
					sessionCookie += "; " + urlConn.getHeaderField(i);
				}
			}
		}

		url = new URL(
				"http://www.megaupload.com/?d=B0MLGMTP");
		urlConn = (HttpURLConnection) url.openConnection();
		urlConn.setRequestProperty("Cookie", sessionCookie);

		File arquivo;
		arquivo = new File("pagina.htm");
		fos = new FileOutputStream(arquivo);

		// Pega a resposta
		rd = new BufferedReader(new InputStreamReader(urlConn
				.getInputStream()));
		String line;
		String saida = "";
		while ((line = rd.readLine()) != null) {
			fos.write(line.getBytes());
			saida = saida + line + "\n";
		}
		
		System.out.println(saida);

	} catch (MalformedURLException mue) {
		mue.printStackTrace();
	} catch (IOException ioe) {
		ioe.printStackTrace();
	}
	
	wr.close();
	fos.close();
	rd.close();
	//stream.close();
}

}
[/code]

Neste caso eu começei pela página de login, passando o usuario e senha, e depois tentei acessar o link normal de um arquivo.

Desde já agradeço.
Abs.

kra, se vc tah fazendo esse programa apenas pra nao ter que ficar acessando cada link que for baixar, vc pode usar um programa chamado JDownloader. Com ele vc pode acessar a pagina onde estao os links, pegar o codigo fonte dela que ele extrai os links do megaupload pra vc. Extrai tambem quaiquer outros links que tiver lah, ai vc escolhe o que baixar e ele vai baixando conforme vc configure, assim como vc tem conta premium pode configurar para baixar varios arquivos de uma vez, ele monta uma fila de arquivos, se tiver 100 e vc definir pra baixar de 5 em 5, ele gerencia isso pra vc. Espero ter ajudado.

po cara ajudou sim, vou baixar este programa que você falou, é exatamente o que eu preciso.
obrigado.

Blz kra, qualquer coisa, posta ai.