Essayer de construire http://IP:4567/foldername/1234?abc=xyz
. Je ne sais pas grand chose à ce sujet mais j'ai écrit le code ci-dessous à partir de Google:
import Java.net.MalformedURLException;
import Java.net.URI;
import Java.net.URL;
public class MyUrlConstruct {
public static void main(String a[]){
try {
String protocol = "http";
String Host = "IP";
int port = 4567;
String path = "foldername/1234";
URL url = new URL (protocol, Host, port, path);
System.out.println(url.toString()+"?");
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
}
Je suis capable de construire l'URL http://IP:port/foldername/1234?
. Je suis coincé à la partie requête. S'il vous plaît, aidez-moi à avancer.
En règle générale, une URL est un type d’URI spécialisé. Vous pouvez utiliser la classe URI (qui est plus moderne que la classe d'URL vénérable, qui existe depuis Java 1.0 ) pour créer un URI de manière plus fiable, et vous pouvez le convertir en URL avec la méthode toURL de l'URI:
String protocol = "http";
String Host = "example.com";
int port = 4567;
String path = "/foldername/1234";
String auth = null;
String fragment = null;
URI uri = new URI(protocol, auth, Host, port, path, query, fragment);
URL url = uri.toURL();
Notez que le path
doit commencer par une barre oblique.
Vous pouvez simplement passer des spécifications brutes
new URL("http://IP:4567/foldername/1234?abc=xyz");
Ou vous pouvez prendre quelque chose comme org.Apache.http.client.utils.URIBuilder
et construisez-le de manière sécurisée avec un encodage d'URL correct
URIBuilder builder = new URIBuilder()
builder.setScheme("http")
builder.setHost("IP")
builder.setPath("/foldername/1234")
builder.addParameter("abc", "xyz")
URL url = builder.build().toURL()
Il existe une bibliothèque très populaire appelée OkHttp qui a été sélectionnée 20K fois sur GitHub. Avec cette bibliothèque, vous pouvez construire l’URL comme ci-dessous:
import okhttp3.HttpUrl;
URL url = new HttpUrl.Builder()
.scheme("http")
.Host("example.com")
.port(4567)
.addPathSegments("foldername/1234")
.addQueryParameter("abc", "xyz")
.build().url();
Ou vous pouvez simplement analyser une URL:
URL url = HttpUrl.parse("http://example.com:4567/foldername/1234?abc=xyz").url();