Beleza, vou te passar um exemplo que tenho aqui bem completo. Dai você olha ele e ve o que você precisa. Lembrando que esse exemplo é para se contectar a um site ou servidor da internet, onde a sua rede passa por um servidor proxy que exige autenticação de usuário.
NOTA:
HunterProperties.IS_USE_PROXY é um atributo boleano que indica se a rede local usa proxy para se conectar a internet.
HunterProperties.IS_USE_AUTENTICATION é um atributo boleano que indica se a rede proxy exige autenticação de usuário para se conectar a internet.
HunterProperties.PROXY_HOST é um string com o IP\nome do host proxy (o computador que faz o papel de proxy\gateway).
HunterProperties.PROXY_PORT número da porta do proxy.
HunterProperties.PROXY_USER seu usuário do proxy.
HunterProperties.PROXY_PASSWORD sua senha do proxy.
No mais espero ter ajudado. Abraço!
Segue o exemplo:
CLASSE QUE FAZ AS CONEXÕES:
import java.net.Authenticator;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
public class ConnectionHunter {
private List<String> cookies;
public ConnectionHunter(){
cookies = new ArrayList<String>();
if(HunterProperties.IS_USE_PROXY){
if(HunterProperties.IS_USE_AUTENTICATION){
Authenticator.setDefault(new ProxyAuthenticator(HunterProperties.PROXY_USER, HunterProperties.PROXY_PASSWORD));
}
System.setProperty("http.proxyHost", HunterProperties.PROXY_HOST);
System.setProperty("http.proxyPort", String.valueOf(HunterProperties.PROXY_PORT));
}
}
/**
* Executa uma requisição retornando a resposta em um {@link URLConnection}.
* @param urlPage : url da página.
* @param parameters : lista de parâmetros da requisição.
* @return retorna um {@link URLConnection} com a resposta da requisição.
* */
public URLConnection request(String urlPage, RequestParameter... parameters) throws Exception {
URL url = new URL(addParametersInURL(urlPage, parameters));
URLConnection conn = url.openConnection();
/*
* Define propriedades antes da requisição.
* Nesse caso esta emulando o FireFox por segurança.
* */
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-BR; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.7");
conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
conn.setRequestProperty("Accept-Language", "pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3");
conn.setRequestProperty("Accept-Encoding", "gzip,deflate");
conn.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
conn.setRequestProperty("Proxy-Connection", "keep-alive");
//Adiciona cookies no request.
String allCookies = "";
for(String cookie: cookies){
allCookies += cookie + ";";
}
conn.setRequestProperty("Cookie", allCookies);
//Executa o request.
conn.connect();
//Atualiza cookies retornados se existirem.
if(conn.getHeaderField("Set-Cookie") != null){
String[] newCookies = conn.getHeaderField("Set-Cookie").split(";");
//Atualiza cookies já existentes.
for(String cookie: cookies){
for(int i = 0; i < newCookies.length; i++){
if(cookie.equals(newCookies[i])){
cookie = newCookies[i];
newCookies[i] = null;
}
}
}
//Adiciona os novos cookies.
for(int i = 0; i < newCookies.length; i++){
if(newCookies[i] != null){
cookies.add(newCookies[i]);
}
}
}
return conn;
}
/**
* Adiciona parâmetros de request na URL.
* @param url : URL na qual deseja-se adicionar os parâmetros.
* @param parameters : lista de parâmetros a ser adicionados.
* */
private String addParametersInURL(String url, RequestParameter... parameters){
if(parameters.length > 0){
url += "?";
for(RequestParameter parameter: parameters){
url += parameter.getParameter() + "&";
}
return url;
}else{
return url;
}
}
}
CLASSE AUTENTICADORA:
import java.net.Authenticator;
import java.net.PasswordAuthentication;
public class ProxyAuthenticator extends Authenticator {
private String user, password;
public ProxyAuthenticator(String user, String password) {
this.user = user;
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password.toCharArray());
}
}
CLASSE DE PARÂMETROS:
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class RequestParameter {
private String nameFiel, valueField;
public RequestParameter(String name, String value){
try {
this.nameFiel = URLEncoder.encode(name, "UTF-8");
this.valueField = URLEncoder.encode(value, "UTF-8");
} catch (UnsupportedEncodingException e) {
System.err.println("Erro ao codificar atributo em UTF-8.");
e.printStackTrace();
}finally{
this.nameFiel = name;
this.valueField = value;
}
}
public String getParameter(){
return nameFiel + "=" + valueField;
}
public String getParameterName(){
return nameFiel;
}
public String getParameterValue(){
return valueField;
}
}