Originariamente inviato da ragnonerodocet
Se non ho capito male, utilizzare URLConnection significherebbe cambiare oggetti di dominio.
Questa non l'ho capita
...
Originariamente inviato da ragnonerodocet
Allora io mi chiedo:
con setParams della classe HttpGet i parametri non si encodano alla URL
L'encode delle entities lo devi fare tu con un replaceAll nella stringa.
Originariamente inviato da ragnonerodocet
non mi va di utilizzare il costruttore di HttpGet con String.
Mi rimane il costruttore che prende come argomento un oggetto di tipo URL.
O sbaglio?
PS: e comunque URL ha diversi costruttori che prendono tutti come argomenti stringhe. AL massimo posso estendere URL e prendere come parametro di costyruttore un ArrayList o una List.
Che ne pensi?
O URL o direttamente HttpGet è uguale...
Fare l'overload del costruttore non funziona, perchè devi chiamare il costruttore di base alla prima riga, quindi non risolvi.
Comunque setParams è un metodo che eredita da una superclasse... quindi può darsi che non viene usato in questa classe, oppure setta i parametri nell'header http.
Come t'ho detto i parametri delle richieste get vanno messi nell'url, quindi è inutile fare metodi di get e di set di questi, visto che li puoi fare tu esternamente.
Fai una cosa del genere:
codice:
public class TuoHttpGet extends HttpGet {
public TuoHttpGet (URL url) {
super(url);
}
public void eseguiGet (HashMap<String, String> mappaParametriRequest) {
// accodi i parametri all'url e fai la richiesta.
}
}
Correggo il codice di prima che è sbagliato:
codice:
URLConnection conn = new URL("http://www.google.it").openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
conn.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
Secondo me per un semplice GET è molto più semplice usare URLConnection. Ma se sei obbligato con HttpClient allora amen