افزونه‌ای در Jenkins که درخواست HTTP خروجی می‌فرستد می‌تواند از کمک‌کننده عمومی کلاینت آگاه از پروکسی Jenkins استفاده کند:

HttpClient client = ProxyConfiguration.newHttpClient();
HttpRequest request = ProxyConfiguration.newHttpRequestBuilder(
        URI.create("https://service.example/status"))
    .GET()
    .build();
HttpResponse<Void> response = client.send(
    request, HttpResponse.BodyHandlers.discarding());

این قطعه از انواع hudson.ProxyConfiguration و java.net.URI و java.net.http استفاده می‌کند. فراخواننده ورودی و خروجی و همچنین وقفه را از طریق جریان معمول افزونه مدیریت می‌کند. پردازنده بدنه، بدنه پاسخ را مصرف و دور می‌ریزد.

newHttpClient و رابط سازنده آن از Jenkins 2.379 در دسترس هستند. در JVM کنترلر، پیکربندی پروکسی پشتیبانی‌شده Jenkins را اعمال می‌کنند. کلاینت را دوباره به کار ببرید، نه اینکه برای هر درخواست یکی بسازید.

این کار از کپی شدن نام و گذرواژه پروکسی ذخیره‌شده در کنترلر به یک انتقال جداگانه پیکربندی‌شده جلوگیری می‌کند. کلاینت HTTP جاوایی که جداگانه ساخته شود تنها به این دلیل که رابط کنترلر یک ورودی پروکسی دارد، آگاه از پروکسی نمی‌شود.

برای درخواست‌هایی که سرآیند Authorization را به مقصد می‌فرستند، محدودیت مستند پروکسی احراز هویت‌شده در Java 17 و بالاتر را بررسی کنید. مستندات مشخصاً به این ترکیب اشاره می‌کند؛ انتخاب این کمک‌کننده آن محدودیت کلاینت را برنمی‌دارد.

مقالات مرتبط