Conectar a um URL que necessita de login

Boas pessoal da GUJ sou novo aqui no forum e não sei se este é o melhor locar para colocar a minha duvida se não for peço desculpa…

eu fiz um programa em java que se conecta com um URL e guarda o conteúdo do ficheiro acedido através do URL. Esta parte do programa esta a funcionar bem, no entanto quanto pretendo aceder a URL que necessitam de login não consigo(como é óbvio). Como não percebo muito desta área de redes não é possível anexar na minha conexão uma espécie de header onde contem o login? Já pesquisei bastante(google) mas não encontrei nada que funciona-se.

PS: tenho alguma urgência…

Desde já muito Obrigado a todos e parabéns pelo Site :wink:

Veja esse link aki http://www.java-tips.org/other-api-tips/httpclient/how-to-use-basic-authentication.html

espero q ajude

cara depois que te enviei a resposta, vi esta outra, acredito que te ajude mais, esta grava o login e senha no header da requisicao.

neste trexo do codigo

uc.setRequestProperty ("Authorization", "Basic " + encoding);

Nessa ultima hipótese o meu problema esta em criar a variável encoding pois não sei que método devo utilizar em substituição ao BASE64Encoder().encode. Pois não tenho a Class BASE64Encoder.

String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());

se o seu problema agora for em fazer o encode em base 64, existem varias implemtacoes na net
aki vai duas
http://commons.apache.org/codec/apidocs/src-html/org/apache/commons/codec/binary/Base64.html
http://www.source-code.biz/base64coder/java/Base64Coder.java.txt

Aqui esta o código que usar. Penso que tenho tudo bem no entanto continuo a não conseguir aceder a pagina.

Se alguém me poder ajudar agradecia mt…

public static int URLToFile (String URL, String Path){
	try{
		String aux;
	    URL url = new URL (URL);
        URLConnection curl = url.openConnection();
        String userPassword = "--------@----:------";
        String encoding = Base64Coder.encodeLines(userPassword.getBytes());
        curl.setRequestProperty ("Authorization", "Basic " + encoding);
        System.out.println(encoding);
        BufferedReader in = new BufferedReader(new InputStreamReader(curl.getInputStream()));
        PrintWriter pw = new PrintWriter(new FileOutputStream(Path));
        while ((aux=in.readLine()) != null){ 
            System.out.println(aux);
        	pw.write(aux);
        }
        in.close();
        pw.close();
	    return 0;
	}catch(Exception e ){
		return -1;
	}	    
}

Peço desculpa pela impaciência, mas é que já pesquisei tanto mas tanto e os exemplos são todos tão parecidos com esse que eu já não sei o que fazer. O pior é que isso tem muita urgência. Tive com o wireshark para ver o que acontece quando acedo com o meu browser mas não sei interpretar algum dos parâmetros.
Ai já não sei mesmo o que fazer. Peço por favor que alguem me ajude neste problema.

Desde já muito obrigado…

E ai pessoal penso que consegui chegar a uma solução mas mais uma vez estou com outro problema. Não consigo adicionar as biblioteca httpclient ao meu eclipse.
O que eu fiz foi, fiz download do ficheiro binary da seguinte pagina http://hc.apache.org/downloads.cgi, depois fiz add External Archives no eclipse e adicionei os .jar .
O pior é que quando vou utilizar algumas class não existem na biblioteca e as que existem não seguem este path

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HeaderElement;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;

Me desculpem a ignorância mas é que nunca tive de adicionar nada do género.

Desde já muito Obrigado.