var client = clients.GetOrAdd(
    "proxy-east",
    "https://example.com",
    builder => builder.ConfigureInnerHandler(handler =>
        handler.Proxy = new WebProxy("http://203.0.113.10:8080")));

Тут clients — це IFlurlClientCache з Flurl 4. Виберіть маршрут до пошуку й дайте його повторно використовуваному клієнту стабільне ім'я. Для дозволених публічних запитів список HTTP-проксі пропонує кандидатів для URL WebProxy внутрішнього handler. Повторне використання proxy-east з новим значенням проксі — це не переконфігурація вже збереженого там клієнта для кожного запиту.

Використовуйте API handler, що відповідає вибраному застосунком типу; Flurl документує інший шлях конфігурації для SocketsHttpHandler.

Тримайте вибраний маршрут у метаданих операції та викликайте через відповідний клієнт. Випадковий вибір щоразу, коли консультується factory, інакше може дати одному логічному завданню неузгоджені політики.

Володійте кешем у межах області застосунку та обмежуйте його зростання. Мінливий тимчасовий список проксі може накопичувати клієнтів і ресурси; використовуйте безпечні ідентифікатори маршрутів для імен/логів замість вбудованих паролів.

Тут використовується інтерфейс іменованого кешу Flurl 4 замість копіювання старої власної інфраструктури factory або зміни використовуваного handler під час іншого запиту.

Схожі статті