Configurar un proxy de cliente de YouTube .NET con HttpClientFactory.ForProxy
Use Google.Apis.Http.HttpClientFactory.ForProxy no inicializador do servizo en lugar de substituír o controlador interno dun cliente de YouTube despois de construílo.
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.