Configurar um proxy de cliente YouTube .NET com HttpClientFactory.ForProxy
Use Google.Apis.Http.HttpClientFactory.ForProxy no inicializador do serviço em vez de substituir o manipulador interno de um cliente YouTube após a construção.
O Google.Apis fornece uma fábrica para criar clientes HTTP com um IWebProxy. Forneça-a ao construir o serviço gerado:
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 acesso com chave de API para uma operação suportada de dados públicos. Omita a atribuição de credenciais de proxy para um proxy sem autenticação. Nesse ramo de dados públicos, escolha uma entrada HTTP da lista de proxies HTTP se intermediários públicos forem permitidos. A conta do proxy e a chave de API atendem a endpoints diferentes.
No Google.Apis 1.73.0, BaseClientService.Initializer.HttpClientFactory é o gancho de criação suportado. O ForProxy define o proxy fornecido nos clientes criados por essa fábrica. A construção de solicitações, a serialização e o restante do pipeline do SDK permanecem com o serviço.
Configure isso antes de emitir solicitações. Substituir MessageHandler.InnerHandler em um cliente construído não é necessário para este caso e pode descartar outras escolhas de manipulador.
Uma credencial OAuth pode obter ou atualizar seu token por meio de seu próprio arranjo HTTP. Definir a fábrica de um serviço não determina como uma credencial criada separadamente obtém tokens. Verifique esse caminho separadamente se a recuperação do token for a operação que falha através do proxy. Ao usar GoogleCredential, mantenha a cópia roteada de CreateWithHttpClientFactory para esse trabalho de token.