پروکسی‌ای که برای یک HttpClient نام‌دار پیکربندی شده است، به‌طور خودکار هر کلاینتی را که IHttpClientFactory برمی‌گرداند پیکربندی نمی‌کند. نام ثبت و نام درخواستی را کنار هم نگه دارید.

services.AddHttpClient("via-proxy")
    .ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
    {
        Proxy = new WebProxy("http://203.0.113.10:8080"),
        UseProxy = true
    });

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

var client = factory.CreateClient("via-proxy");

نقطه پایانی صرفاً نمونه است. برای درخواست‌های مجاز به سرویس‌های عمومی، فهرست پروکسی HTTP نامزدهایی برای نشانی WebProxy کلاینت نام‌دار فراهم می‌کند. ساخت کلاینت پیش‌فرض بی‌نام در جای دیگر جست‌وجوی متفاوتی است، حتی اگر هر دو کلاینت از همان کارخانه تزریق‌شده بیایند.

رفتار پروکسی را در سطح اتصال روی هندلر اصلی پیکربندی کنید، نه اینکه آن را سرآیند درخواست مقصد بدانید. کارخانه می‌تواند طول عمر هندلرها را جدا از اشیای HttpClient که برمی‌گرداند مدیریت کند.

اگر فراخوانی متعلق به یک کلاینت نوع‌دار یا SDK دیگری است، بررسی کنید کدام ثبت HttpClient آن را تأمین می‌کند. کلاینت نام‌داری که به‌درستی پیکربندی شده و هرگز استفاده نمی‌شود، بر مسیر شبکه آن SDK تأثیری ندارد.

این پیکربندی را برای یک سیاست مسیریابی پایدار به کار ببرید. تغییر یک هندلر زنده میان عملیات همچنان مسئله‌ای جداگانه از هم‌زمانی و طول عمر است.

مقالات مرتبط