Imposta gli input del downloader sul suo 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 mappa dell'ambiente inizia come copia dell'ambiente del processo Java. Queste modifiche valgono per i processi avviati in seguito da questo builder; non aggiornano il terminale padre né un altro builder. Controlla le variabili di bypass ereditate se curl continua ad andare diretto. Per una rotta di download HTTP pubblica, scegli l'endpoint del figlio dalla lista dei proxy HTTP.

L'esempio eredita i flussi standard. Attendi il figlio, gestisci il suo stato di uscita e mantieni la politica di annullamento dell'applicazione dopo start().

La proprietà di sistema http.proxyHost di Java appartiene al codice di rete Java che partecipa. Curl usa le proprie opzioni e il proprio ambiente. Se il figlio è un altro programma Java, passagli gli argomenti -D necessari prima della classe principale o -jar; una variabile d'ambiente chiamata solo http.proxyHost non imposta quella proprietà.

Articoli correlati