Configurer un proxy de client YouTube .NET avec HttpClientFactory.ForProxy
Utilisez Google.Apis.Http.HttpClientFactory.ForProxy dans l'initialiseur de service au lieu de remplacer le gestionnaire interne d'un client YouTube après sa construction.
Google.Apis fournit une fabrique pour créer des clients HTTP avec un IWebProxy. Fournissez-la lors de la construction du service généré :
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)
});L'exemple utilise un accès par clé API pour une opération prise en charge sur des données publiques. Omettez l'affectation des informations d'identification du proxy pour un proxy non authentifié. Dans cette branche de données publiques, choisissez une entrée HTTP dans la liste de proxys HTTP si les intermédiaires publics sont autorisés. Le compte du proxy et la clé API desservent des points de terminaison différents.
Dans Google.Apis 1.73.0, BaseClientService.Initializer.HttpClientFactory est le point d'extension de création pris en charge. ForProxy applique le proxy fourni aux clients créés par cette fabrique. La construction des requêtes, la sérialisation et le reste du pipeline du SDK restent du ressort du service.
Configurez ceci avant d'émettre des requêtes. Remplacer MessageHandler.InnerHandler sur un client construit est inutile pour ce cas et peut écarter d'autres choix de gestionnaire.
Un identifiant OAuth peut obtenir ou actualiser son jeton via sa propre organisation HTTP. Définir la fabrique d'un service ne détermine pas comment un identifiant créé séparément obtient des jetons. Vérifiez ce chemin séparément si la récupération du jeton est l'opération qui échoue via le proxy. Avec GoogleCredential, conservez la copie routée de CreateWithHttpClientFactory pour ce travail de jeton.