1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
public class ConnectionFactory {
private URL url;
private HttpURLConnection conn;
private InputStream input;
private String responseStr;
private CookieManager cm = new CookieManager();
public ConnectionFactory() throws MalformedURLException, IOException{
cm.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cm);
}
/**
* Retourne l'URL actuellement utilisé
* @return L'url actuellement utilisé par la connexion
*/
public URL getUrl(){
return this.url;
}
/**
* Retourne la connexion courante
* @return La connexion courante
*/
public HttpURLConnection getConnection(){
return conn;
}
/**
* Retourne le flue retourné par la connexion
* @return
*/
public InputStream getInput (){
return input;
}
public CookieHandler getCookieHandler(){
return cm;
}
/**
* Crée et lance la connexion avec la méthode GET. Garantie pour HTTP
* @param address Adresse internet (ex : "http://www.google.com").
* @param lstParams La liste des paramètres du GET
* @param lstValues Les valeurs de chaque paramètre du GET, dans le même ordre que lstParams.
* @throws ProtocolException Si le protocole n'est pas pris en charge (ex FTP, HTTPS,...).
* @throws UnsupportedEncodingException Type de réponse non supportée
* @throws IOException Problème de connexion.
*/
public void connectionGet(String address) throws ProtocolException, UnsupportedEncodingException, IOException{
responseStr = null;
//ajout des paramètres dans l'url
url = new URL(address);
conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setDoOutput(true);
conn.setInstanceFollowRedirects(true);
//récupération de la réponse
input = conn.getInputStream();
//return getResponseString();
}
/**
* Retourne la réponse de la connexion au format String.
* @return la réponse de la connexion (Ex. contenu html de la page web retournée).
* @throws IOException Problème de connexion.
*/
public String getResponseString() throws IOException{
if (responseStr == null) {
StringBuilder response = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
//formatage de la réponse
String ligne;
while ((ligne = reader.readLine()) != null) {
ligne+="\r\n"; response.append(ligne);
}
responseStr = response.toString();
reader.close();
}
return responseStr;
}
/**
* Force la déconnexion courante.
*/
public void disconnect(){
conn.disconnect();
}
} |
Partager