123 votes

Y a-t-il un bon générateur d’url pour Java ?

Y a-t-il un bon générateur d’url pour java ?

79voto

Chikei Points 1127

Depuis Apache HTTP Component HttpClient 4.1.3, à partir du tutoriel officiel:

 public class HttpClientTest {
public static void main(String[] args) throws URISyntaxException {
    List<NameValuePair> qparams = new ArrayList<NameValuePair>();
    qparams.add(new BasicNameValuePair("q", "httpclient"));
    qparams.add(new BasicNameValuePair("btnG", "Google Search"));
    qparams.add(new BasicNameValuePair("aq", "f"));
    qparams.add(new BasicNameValuePair("oq", null));
    URI uri = URIUtils.createURI("http", "www.google.com", -1, "/search",
                                 URLEncodedUtils.format(qparams, "UTF-8"), null);
    HttpGet httpget = new HttpGet(uri);
    System.out.println(httpget.getURI());
    //http://www.google.com/search?q=httpclient&btnG=Google+Search&aq=f&oq=
}
}
 

64voto

mikaelhg Points 647

En tant qu'auteur, je ne suis probablement pas la meilleure personne pour juger si mon constructeur d'URL / URI est bon , mais le voici quand même: https://github.com/mikaelhg/urlbuilder

Je voulais la solution complète la plus simple possible sans aucune dépendance en dehors du JDK. Je devais donc lancer la mienne.

56voto

takete.dk Points 1336

29voto

jon077 Points 3753

Utiliser HTTPClient a bien fonctionné.

 protected static String createUrl(List<NameValuePair> pairs) throws URIException{

  HttpMethod method = new GetMethod("http://example.org");
  method.setQueryString(pairs.toArray(new NameValuePair[]{}));

  return method.getURI().getEscapedURI();

}
 

4voto

Chantal Points 41

Le bogue (RFE) 6306820 de la base de données de bogues Java s'adresse à cela.

Dans l'un des commentaires, un lien vers la mise en œuvre de RFE est fourni.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X