Przekaż procesowi curl uruchomionemu przez Javę jego zmienne proxy
Ustaw ProcessBuilder.environment dla downloadera; właściwości proxy -D w JVM nie stają się opcjami curl.
Ustaw dane wejściowe downloadera w jego 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();Mapa środowiska zaczyna się jako kopia środowiska procesu Java. Te zmiany dotyczą procesów uruchamianych później przez tego buildera; nie aktualizują terminala nadrzędnego ani innego buildera. Sprawdź odziedziczone zmienne obejścia, jeśli curl nadal łączy się bezpośrednio. Dla publicznej trasy pobierania HTTP wybierz punkt końcowy procesu potomnego z listy proxy HTTP.
Przykład dziedziczy standardowe strumienie. Poczekaj na proces potomny, obsłuż jego stan wyjścia i zachowaj politykę anulowania aplikacji po start().
Właściwość systemowa http.proxyHost Javy należy do uczestniczącego kodu sieciowego Javy. Curl używa własnych opcji i własnego środowiska. Jeśli proces potomny jest innym programem Java, przekaż mu potrzebne argumenty -D przed klasą główną lub -jar; zmienna środowiskowa o nazwie tylko http.proxyHost nie ustawia tej właściwości.