Cấp cho tiến trình curl do Java khởi chạy các biến proxy của nó
Đặt ProcessBuilder.environment cho trình tải xuống; các thuộc tính proxy -D trong JVM không trở thành tùy chọn của curl.
Đặt đầu vào của trình tải xuống trên ProcessBuilder của nó:
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();Bản đồ môi trường bắt đầu như một bản sao môi trường của tiến trình Java. Những thay đổi này áp dụng cho các tiến trình mà builder này khởi chạy sau đó; chúng không cập nhật terminal cha hay builder khác. Kiểm tra các biến bỏ qua được kế thừa nếu curl vẫn đi trực tiếp. Với tuyến tải xuống HTTP công khai, hãy chọn điểm cuối của tiến trình con từ danh sách proxy HTTP.
Ví dụ kế thừa các luồng chuẩn. Chờ tiến trình con, xử lý trạng thái thoát của nó và giữ chính sách hủy của ứng dụng sau start().
Thuộc tính hệ thống http.proxyHost của Java thuộc về mã mạng Java tham gia. Curl dùng tùy chọn và môi trường riêng. Nếu tiến trình con là một chương trình Java khác, hãy cấp các đối số -D cần thiết trước lớp chính hoặc -jar; một biến môi trường chỉ có tên http.proxyHost không đặt thuộc tính đó.