Ορίστε τις εισόδους του λήπτη στο 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. Αυτές οι αλλαγές ισχύουν για διεργασίες που εκκινεί αργότερα αυτός ο builder· δεν ενημερώνουν το γονικό τερματικό ούτε άλλον builder. Ελέγξτε τις κληρονομημένες μεταβλητές παράκαμψης αν το curl εξακολουθεί να πηγαίνει απευθείας. Για δημόσια διαδρομή λήψης HTTP, επιλέξτε το τελικό σημείο του παιδιού από τη λίστα HTTP proxy.

Το παράδειγμα κληρονομεί τις τυπικές ροές. Περιμένετε το παιδί, χειριστείτε την κατάσταση εξόδου του και διατηρήστε την πολιτική ακύρωσης της εφαρμογής μετά το start().

Η ιδιότητα συστήματος http.proxyHost της Java ανήκει στον κώδικα δικτύου Java που συμμετέχει. Το curl χρησιμοποιεί τις δικές του επιλογές και το δικό του περιβάλλον. Αν το παιδί είναι άλλο πρόγραμμα Java, δώστε του τα απαραίτητα ορίσματα -D πριν από την κύρια κλάση ή -jar· μια μεταβλητή περιβάλλοντος που απλώς ονομάζεται http.proxyHost δεν ορίζει αυτή την ιδιότητα.

Σχετικά άρθρα