Ställ in nedladdarens indata på dess 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();

Miljökartan börjar som en kopia av Java-processens miljö. Dessa ändringar gäller processer som den här byggaren startar senare; de uppdaterar inte föräldraterminalen eller en annan byggare. Kontrollera ärvda kringgåendevariabler om curl fortfarande går direkt. För en offentlig HTTP-nedladdningsväg väljer du barnets slutpunkt från listan med HTTP-proxyer.

Exemplet ärver standardströmmarna. Vänta på barnet, hantera dess slutstatus och behåll programmets avbrottspolicy efter start().

Javas systemegenskap http.proxyHost tillhör deltagande Java-nätverkskod. Curl använder sina egna alternativ och sin egen miljö. Om barnet är ett annat Java-program ger du det de nödvändiga -D-argumenten före huvudklassen eller -jar; en miljövariabel som bara heter http.proxyHost ställer inte in den egenskapen.

Relaterade artiklar