Google.Apis proporciona una fábrica para crear clientes HTTP con un IWebProxy. Pásela al construir el servicio generado:

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)
    });

El ejemplo usa acceso con clave de API para una operación compatible de datos públicos. Omita la asignación de credenciales de proxy para un proxy sin autenticación. En esa rama de datos públicos, elija una entrada HTTP de la lista de proxies HTTP si se permiten intermediarios públicos. La cuenta del proxy y la clave de API sirven a puntos de conexión distintos.

En Google.Apis 1.73.0, BaseClientService.Initializer.HttpClientFactory es el enlace de creación compatible. ForProxy establece el proxy proporcionado en los clientes creados por esa fábrica. La construcción de solicitudes, la serialización y el resto de la canalización del SDK siguen en el servicio.

Configure esto antes de emitir solicitudes. Reemplazar MessageHandler.InnerHandler en un cliente construido no es necesario para este caso y puede descartar otras opciones de controlador.

Una credencial de OAuth puede obtener o actualizar su token mediante su propia disposición HTTP. Establecer la fábrica de un servicio no determina cómo obtiene tokens una credencial creada por separado. Compruebe esa ruta por separado si la recuperación del token es la operación que falla a través del proxy. Al usar GoogleCredential, conserve la copia enrutada de CreateWithHttpClientFactory para ese trabajo de token.

Artículos relacionados