Java ئىجرا قىلغان curl جەريانىغا ئۇنىڭ proxy ئۆزگەرگۈچىلىرىنى بېرىڭ
چۈشۈرگۈچ ئۈچۈن ProcessBuilder.environment نى تەڭشەڭ؛ JVM دىكى -D proxy خاسلىقلىرى 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 دەپ ئاتالغان مۇھىت ئۆزگەرگۈچىسى بۇ خاسلىقنى تەڭشەلمەيدۇ.