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 correspondre aux résultats obtenus. C'est comme si un paramètre était faux. C'est pourquoi je pense que le problème est dans la partie de 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 le mets dans l'URL. Mais si je le donne sous forme de chaîne, le résultat est correct.
String lng = "23.433114"
Est-ce que UrlEncoding est nécessaire? Je vais essayer ce qui est suggéré ci-dessous.
Essayez URIBuilder
: [ Documentation ] d'Apache
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>
Puisque vous voulez 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 nirest qui est construite sur le dessus de HttpComponents, ce qui facilite 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 va récupérer la réponse HTML correspondant à tous les résultats d'une recherche sur youtube en utilisant "eñe"
. Le ñ
Le caractère sera encodé pour vous.
AVERTISSEMENT: Je ne suis pas attaché à Unirest en aucune façon. Je ne suis ni développeur ni sponsor de ce projet. Je ne suis qu'un utilisateur heureux de ce cadre.