Conectar a pagina HTTP com Usuario e Senha

Olá a todos,

Estou com uma dúvida para fazer a conexao de uma app java para uma pagina HTML, consegui fazer a conexao a uma pagina que nao requere credenciais para o acesso porém preciso fazer o acesso a uma pagina que possui credenciais, tenho dúvias de como inserir as credenciais na app. Até onde sei devo colocar o valor de usuario e senha no comando:
setRequestProperty
Na minha variavel sl tenho informacoes do XML de configuracao(usuario, senha e url), sl.getServer() me fornece a url e sl.getCredential() as informacoes do login.Porem quando coloco no setRequest property o seguinte valor

 O meu codigo esta da seguinte forma:
	          	connection.setRequestProperty("Authorization",
                        "Basic " + (sl.getCredential().getLogin(),sl.getCredential().getPassword()));

Desta forma a IDE acusa que existe um erro.

public class testemain {

	   public static void main (String args[]) {
	        
	    	try {
	            JAXBContext jc = JAXBContext.newInstance(logdownloader.settings.generated.Serverlist.class);
	            Unmarshaller unmarshaller = jc.createUnmarshaller();
	            
	            Serverlist sl = (Serverlist)
	                     unmarshaller.unmarshal(new File("bin\logdownloader\settings\Connection.xml"));
	            
	         // cria o objeto url 
	          	URL url = new URL(sl.getServer().get(0).getUrl());
	         // cria o objeto httpurlconnection
	          	HttpURLConnection connection = (HttpURLConnection) url.openConnection();
	         // seta o metodo  
	          	connection.setRequestProperty("Request-Method", "GET");
	          	
                 // seta a variavel para ler o resultado  
	            connection.setDoInput(true);  
	            connection.setDoOutput(false);

/*  Estou tentando colocar este trecho para autenticar porem a IDE acusa erro na sintaxe
                      connection.setRequestProperty("Authorization",  "Basic " + (sl.getCredential().getLogin(),sl.getCredential().getPassword()));
*/


	         // conecta com a url destino  
	            connection.connect();
	            
	            
	              System.out.println(  
		                  "Resultado: "  
		                      + connection.getResponseCode()  
		                      + "/"  
		                      + connection.getResponseMessage());
	        
	              
	        }catch (Exception e ) {
	         e.printStackTrace();
	       }
	    }
	}

Alguem poderia me ajudar dizendo como devo preencher este campo com as informacoes do usuario e senha? Vi alguns exemplos onde colocam user e pass dentro de um metodo, mais nao sei se isto é relamente necessário.

Resultado da console : Resultado: 401/Authorization Required

Muito obrigado

Este método recebe dois attributos, o primeiro a chave e o segundo o valor.

http://java.sun.com/javase/6/docs/api/java/net/URLConnection.html#setRequestProperty(java.lang.String, java.lang.String)

Você esta colocando uma ‘,’ entre os métodos que estão entre parênteses, o que causa o erro…

Escreva qual chave e qual valor você quer passar que ficará mais fácil te ajudar…

Acredito que você tenha que passar coisas como:


connection.setRequestProperty("login", s1.getCredential().getLogin());
connection.setRequestProperty("password", s1.getCredential().getPassword());

Mas você tem que saber quais parâmetros o servlet alvo espera receber.

Mais no caso do codigo eu nao tenho servlets, pelo que entendi o connection.setRequestProperty aloca as informacoes da conexao e a propria classe HTTP faz a conexao não é isso?

Em alguns exemplo que vi na web as pessoas colocam da seguinte forma

connection.setRequestProperty("Authorization",  "Basic " + BasicAuth.encode(user, password));

Porem essa Classe BasicAuth e o metodo encode são para criptografar a senha e eu nao preciso disso…eu quero so passar usuario e senha para que a app se conecte, entao minha duvida é…
como vou colocar o usuario e senha no trecho acima sem ter que usar um metodo pra isso?

nao sei se fui claro na explicacao… E obrigado a ajuda

Achei a solução,
Como para acessar uma pagina HTTP que usa usuario e senha é necessário que o setRequestProperty enviei esta informacoes criptografadas usei o metodo BASE64Encoder para criptografar meu usuario e senha na variavel encoding feito isso retornou codigo 200.

Detalhe para usar esta classe java é necessário seguir o seguinte processo

	          	String userPassword = sl.getCredential().getLogin() + ":" + sl.getCredential().getPassword();
	          	String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());
	          	
	          	connection.setRequestProperty ("Authorization", "Basic " + encoding);

Fontes:


http://ubuntuforums.org/showthread.php?p=5664535