اضبط مدخلات برنامج التنزيل على 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().

خاصية النظام http.proxyHost في Java تخص شيفرة الشبكات في Java المشاركة. أما curl فيستخدم خياراته وبيئته الخاصة. إذا كانت العملية الفرعية برنامج Java آخر، فزوّدها بوسائط -D التي تحتاجها قبل الصنف الرئيسي أو -jar؛ ومتغير بيئة اسمه http.proxyHost فقط لا يضبط تلك الخاصية.

مقالات ذات صلة