Předejte procesu curl spuštěnému z Javy jeho proxy proměnné
Nastavte ProcessBuilder.environment pro stahovač; proxy vlastnosti -D v JVM se nestávají možnostmi curl.
Nastavte vstupy stahovače na jeho 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 prostředí začíná jako kopie prostředí procesu Java. Tyto změny platí pro procesy spuštěné později tímto builderem; neaktualizují nadřazený terminál ani jiný builder. Zkontrolujte zděděné proměnné pro obcházení, pokud curl stále jde přímo. Pro veřejnou trasu stahování HTTP vyberte koncový bod potomka ze seznamu HTTP proxy.
Příklad dědí standardní proudy. Počkejte na potomka, ošetřete jeho stav ukončení a zachovejte zásady zrušení aplikace po start().
Systémová vlastnost http.proxyHost v Javě patří zúčastněnému síťovému kódu Javy. Curl používá své vlastní volby a prostředí. Pokud je potomkem jiný program Java, předejte mu potřebné argumenty -D před hlavní třídou nebo -jar; proměnná prostředí, která se jen jmenuje http.proxyHost, tuto vlastnost nenastaví.