YouTube-.NET-Clientproxy mit HttpClientFactory.ForProxy konfigurieren
Verwenden Sie Google.Apis.Http.HttpClientFactory.ForProxy im Dienstinitialisierer, statt den internen Handler eines YouTube-Clients nach der Erstellung zu ersetzen.
Google.Apis stellt eine Factory zum Erstellen von HTTP-Clients mit einem IWebProxy bereit. Übergeben Sie sie beim Aufbau des generierten Dienstes:
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)
});Das Beispiel verwendet API-Schlüsselzugriff für einen unterstützten Vorgang mit öffentlichen Daten. Lassen Sie die Zuweisung von Proxy-Anmeldedaten bei einem nicht authentifizierten Proxy weg. Wählen Sie in diesem Zweig für öffentliche Daten einen HTTP-Eintrag aus der HTTP-Proxy-Liste, wenn öffentliche Vermittler zulässig sind. Das Proxy-Konto und der API-Schlüssel bedienen unterschiedliche Endpunkte.
In Google.Apis 1.73.0 ist BaseClientService.Initializer.HttpClientFactory der unterstützte Erstellungs-Hook. ForProxy legt den übergebenen Proxy auf Clients fest, die von dieser Factory erstellt werden. Anforderungserstellung, Serialisierung und der übrige SDK-Pipeline bleiben beim Dienst.
Konfigurieren Sie dies, bevor Sie Anforderungen senden. MessageHandler.InnerHandler bei einem erstellten Client zu ersetzen ist für diesen Fall unnötig und kann andere Handler-Auswahlen verwerfen.
Ein OAuth-Anmeldedatensatz kann sein Token über seine eigene HTTP-Regelung beziehen oder erneuern. Das Festlegen einer Dienst-Factory bestimmt nicht, wie ein separat erstellter Anmeldedatensatz Tokens erhält. Prüfen Sie diesen Weg separat, wenn der Tokenabruf der Vorgang ist, der über den Proxy fehlschlägt. Wenn Sie GoogleCredential verwenden, behalten Sie die geroutete Kopie aus CreateWithHttpClientFactory für diese Token-Arbeit bei.