Définissez les entrées du téléchargeur sur son ProcessBuilder :

var command = new ProcessBuilder(
    "/usr/bin/curl", "--fail", "--max-time", "30",
    "https://downloads.example/data.csv");
var environment = command.environment();
environment.put("http_proxy", "http://proxy.example:8080");
environment.put("https_proxy", "http://proxy.example:8080");
command.inheritIO();
Process child = command.start();

La table d'environnement commence comme une copie de l'environnement du processus Java. Ces changements s'appliquent aux processus lancés ensuite par ce constructeur ; ils ne mettent à jour ni le terminal parent ni un autre constructeur. Vérifiez les variables de contournement héritées si curl passe encore en direct. Pour une route de téléchargement HTTP publique, choisissez le point de terminaison de l'enfant dans la liste de proxys HTTP.

L'exemple hérite des flux standard. Attendez l'enfant, traitez son code de sortie et conservez la politique d'annulation de l'application après start().

La propriété système http.proxyHost de Java appartient au code réseau Java qui y participe. Curl utilise ses propres options et son propre environnement. Si l'enfant est un autre programme Java, fournissez-lui les arguments -D nécessaires avant la classe principale ou -jar ; une variable d'environnement simplement nommée http.proxyHost ne définit pas cette propriété.

Articles similaires