متدهای پیکربندی HttpClient در Reactor Netty ارجاعی به یک کلاینت پیکربندی‌شده برمی‌گردانند. اگر آن نتیجه را دور بریزید، ارجاع قبلی با تنظیمات پیشین خود باقی می‌ماند.

این کد یک پیکربندی پروکسی می‌سازد و سپس آن را از دست می‌دهد:

HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
    .host("proxy.example").port(8080));

در عوض ارجاع برگشتی را نگه دارید:

client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
    .host("proxy.example").port(8080));

WebClient webClient = WebClient.builder()
    .clientConnector(new ReactorClientHttpConnector(client))
    .build();

نوع‌ها HttpClient و ProxyProvider از Reactor Netty و همچنین WebClient و ReactorClientHttpConnector از Spring هستند. زنجیره‌سازی متد مستقیماً از HttpClient.create() راه دیگری برای حفظ پیکربندی برگشتی است. برای درخواست‌های مجاز API عمومی، فهرست پروکسی HTTP گزینه‌هایی برای میزبان و پورت مثال فراهم می‌کند.

همین بررسی هنگام تنظیم مهلت پاسخ یا مدیریت تغییرمسیرها نیز صدق می‌کند. قرارداد بازگشتی متد را بخوانید، نه اینکه فرض کنید setter شیء اصلی را تغییر می‌دهد.

همچنین ردیابی کنید کدام ارجاع به connector می‌رسد. اختصاص دوباره یک متغیر محلی پس از ساخت connector، کلاینتی را که connector قبلاً دریافت کرده جایگزین نمی‌کند.

مقالات مرتبط