Java-ից գործարկված curl պրոցեսին տվեք նրա պրոքսի փոփոխականները
Սահմանեք ProcessBuilder.environment-ը ներբեռնիչի համար. JVM-ի -D պրոքսի հատկությունները curl-ի ընտրանքներ չեն դառնում։
Սահմանեք ներբեռնիչի մուտքերը նրա 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();Միջավայրի քարտեզը սկսվում է որպես Java պրոցեսի միջավայրի պատճեն։ Այս փոփոխությունները վերաբերում են այս կառուցիչի կողմից ավելի ուշ գործարկվող պրոցեսներին. դրանք չեն թարմացնում ծնող տերմինալը կամ այլ կառուցիչ։ Ստուգեք ժառանգված շրջանցման փոփոխականները, եթե curl-ը դեռ ուղղակիորեն է գնում։ Հանրային HTTP ներբեռնման ուղու համար ընտրեք զավակի վերջնակետը HTTP պրոքսիների ցանկից։
Օրինակը ժառանգում է ստանդարտ հոսքերը։ Սպասեք զավակին, կառավարեք նրա ելքի կարգավիճակը և պահպանեք հավելվածի չեղարկման քաղաքականությունը start()-ից հետո։
Java-ի http.proxyHost համակարգային հատկությունը պատկանում է մասնակցող Java ցանցային կոդին։ Curl-ը օգտագործում է իր սեփական ընտրանքներն ու միջավայրը։ Եթե զավակը այլ Java ծրագիր է, տրամադրեք նրան անհրաժեշտ -D արգումենտները հիմնական դասից առաջ կամ -jar. պարզապես http.proxyHost անունով միջավայրի փոփոխականը այդ հատկությունը չի սահմանում։