Google.Apis ofrece unha fábrica para crear clientes HTTP cun IWebProxy. Fornécea ao construír o servizo xerado:

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

O exemplo usa acceso con clave de API para unha operación compatible de datos públicos. Omita a asignación de credenciais de proxy para un proxy sen autenticación. Nesa rama de datos públicos, escolla unha entrada HTTP da lista de proxys HTTP se se permiten intermediarios públicos. A conta do proxy e a clave de API serven a puntos finais distintos.

En Google.Apis 1.73.0, BaseClientService.Initializer.HttpClientFactory é o gancho de creación compatible. ForProxy establece o proxy fornecido nos clientes creados por esa fábrica. A construción de solicitudes, a serialización e o resto da canalización do SDK seguen no servizo.

Configure isto antes de emitir solicitudes. Substituír MessageHandler.InnerHandler nun cliente construído non é necesario para este caso e pode descartar outras opcións de controlador.

Unha credencial OAuth pode obter ou actualizar o seu token mediante a súa propia disposición HTTP. Establecer a fábrica dun servizo non determina como obtén tokens unha credencial creada por separado. Comprobe esa ruta por separado se a recuperación do token é a operación que falla a través do proxy. Ao usar GoogleCredential, conserve a copia encamiñada de CreateWithHttpClientFactory para ese traballo de token.

Artigos relacionados