Comment créer une URL en java?


Je construis une chaîne avec StringBuilder

StringBuilder builder = new StringBuilder();
builder.append("my parameters");
builder.append("other parameters");

Ensuite, je construis une URL

Url url = new Url(builder.toString());

Et puis j'essaie la connexion

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

Mais l'URL ne semble pas être juste à partir des résultats que j'obtiens. C'est comme si un paramètre était false passé. C'est pourquoi je pense que le problème est dans la partie du StringBuilder.

Le problème est dans un double paramètre que j'essaie de passer.

double longitude = 23.433114;
String lng = String.ValueOf(longitude);

Et puis je l'ai mis dans l'URL. Mais si je le donne comme une chaîne le résultat est correct.

String lng = "23.433114"

UrlEncoding est-il nécessaire? Je vais essayer ce qui est suggéré ci-dessous.

Author: Manolis Karamanis, 2014-10-29

2 answers

Essayer d'apache URIBuilder : [Documentation]

import org.apache.http.client.utils.URIBuilder;

// ...

URIBuilder b = new URIBuilder("http://example.com");
b.addParameter("t", "search");
b.addParameter("q", "apples");

Url url = b.build().toUrl();

Dépendance Maven:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.1</version>
</dependency>
 87
Author: jhkuperus, 2017-12-21 09:01:12

Puisque vous souhaitez créer l'URL et la consommer via une requête GET, il serait préférable d'utiliser une bibliothèque qui vous aide dans ce processus. Vous pouvez utiliser HttpComponents ou une autre bibliothèque comme Unirest qui est construite au-dessus de HttpComponents qui facilitent tout ce travail.

Voici un exemple utilisant Unirest:

HttpResponse<String> stringResponse = Unirest.get("https://www.youtube.com/results")
    .field("search_query", "eñe")
    .asString();
System.out.println(stringResponse.getBody());

Cela récupérera la réponse HTML correspondant à tous les résultats d'une recherche sur youtube en utilisant "eñe". Le caractère ñ sera codé pour vous.

DISCLAIMER: Je ne suis pas attaché à Unirest en aucun cas. Je ne suis pas un développeur ou un sponsor de ce projet. Je ne suis qu'un utilisateur heureux de ce cadre.

 4
Author: Luiggi Mendoza, 2014-10-29 22:46:15