Настройка прокси клиента YouTube .NET с помощью HttpClientFactory.ForProxy
Используйте Google.Apis.Http.HttpClientFactory.ForProxy в инициализаторе службы вместо замены внутреннего обработчика клиента YouTube после создания.
Google.Apis предоставляет фабрику для создания HTTP-клиентов с IWebProxy. Передайте её при создании сгенерированной службы:
var proxy = new System.Net.WebProxy("http://proxy.example:8080");
proxy.Credentials = new System.Net.NetworkCredential(
proxyUser, proxyPassword);
using var youtube = new Google.Apis.YouTube.v3.YouTubeService(
new Google.Apis.Services.BaseClientService.Initializer
{
ApplicationName = "ExampleVideoClient",
ApiKey = apiKey,
HttpClientFactory =
Google.Apis.Http.HttpClientFactory.ForProxy(proxy)
});В примере используется доступ по ключу API для поддерживаемой операции с публичными данными. Пропустите назначение учётных данных прокси для прокси без аутентификации. В этой ветви публичных данных выберите HTTP-запись из списка HTTP-прокси, если публичные посредники разрешены. Учётная запись прокси и ключ API обслуживают разные конечные точки.
В Google.Apis 1.73.0 BaseClientService.Initializer.HttpClientFactory является поддерживаемым хуком создания. ForProxy устанавливает переданный прокси на клиентах, создаваемых этой фабрикой. Построение запросов, сериализация и остальная часть конвейера SDK остаются за службой.
Настройте это перед отправкой запросов. Замена MessageHandler.InnerHandler у созданного клиента в этом случае не нужна и может отбросить другие варианты обработчика.
Учётные данные OAuth могут получать или обновлять свой токен через собственную схему HTTP. Настройка фабрики службы не определяет, как отдельно созданные учётные данные получают токены. Проверьте этот путь отдельно, если получение токена — та операция, которая не проходит через прокси. При использовании GoogleCredential сохраните перенаправленную копию из CreateWithHttpClientFactory для этой работы с токеном.