Google.Apis tillhandahåller en fabrik för att skapa HTTP-klienter med en IWebProxy. Ange den när du bygger den genererade tjänsten:

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

Exemplet använder API-nyckelåtkomst för en offentlig dataåtgärd som stöds. Utelämna tilldelningen av proxyautentiseringsuppgifter för en oautentiserad proxy. I den offentliga datagrenen väljer du en HTTP-post från listan med HTTP-proxyer om offentliga mellanhänder är tillåtna. Proxykontot och API-nyckeln betjänar olika slutpunkter.

I Google.Apis 1.73.0 är BaseClientService.Initializer.HttpClientFactory den stödda skapandekroken. ForProxy ställer in den angivna proxyn på klienter som skapas av den fabriken. Begärandekonstruktion, serialisering och resten av SDK-pipelinen stannar hos tjänsten.

Konfigurera detta innan du skickar begäranden. Det är onödigt att ersätta MessageHandler.InnerHandler på en byggd klient i det här fallet och det kan kasta bort andra hanterarval.

En OAuth-autentiseringsuppgift kan hämta eller förnya sin token via sin egen HTTP-ordning. Att ställa in en tjänstefabrik avgör inte hur en separat skapad autentiseringsuppgift får tokens. Kontrollera den vägen separat om tokenhämtning är den åtgärd som misslyckas via proxyn. När du använder GoogleCredential, behåll den routade kopian från CreateWithHttpClientFactory för det tokenarbetet.

Relaterade artiklar