Forespørselen må bruke den HttpClient som er laget med proxyhandleren din. Et urelatert WebProxy-objekt endrer ikke ruten til en annen klient.

using System;
using System.Net;
using System.Net.Http;

var proxy = new WebProxy("http://203.0.113.10:8080")
{
    BypassProxyOnLocal = false
};

using var handler = new HttpClientHandler
{
    Proxy = proxy,
    UseProxy = true
};

using var client = new HttpClient(handler)
{
    Timeout = TimeSpan.FromSeconds(15)
};

using var response = await client.GetAsync("https://example.com/");
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(await response.Content.ReadAsStringAsync());

Erstatt dokumentasjonsadressen med en ekte HTTP-proxy fra tjenesten din eller HTTP-proxylisten. Denne toppnivåsyntaksen passer til et moderne C#-konsollprosjekt; eldre prosjekter kan legge setningene i en asynkron Main.

Kontroller begge handleregenskapene: Proxy velger endepunktet og UseProxy=true aktiverer bruken. Fungerer endepunktet separat, men ikke i programmet, bekreft at ingen kode deaktiverer UseProxy og at kallet bruker denne instansen. Den egne handleren unngår avhengighet av prosess- eller OS-oppdagelse.

Når proxyoperatøren gir en konto, tildel en NetworkCredential til egenskapen WebProxy.Credentials. Nettstedets Authorization gjelder et annet hopp, og en offentlig IP:port-oppføring gir ingen standard påloggingsopplysninger. En http://-lytter kan transportere HTTPS gjennom en tunnel; behold vanlig målverifisering.

Dette korte programmet frigjør objekter ved avslutning. Ved gjentatte tjenestekall skal du følge .NET-veiledningen om klientlevetid og beholde klient/handler for arbeidsmengden i stedet for å bygge tilkoblingspoolene på nytt per forespørsel. Kontroller returstatusen: En fungerende proxybane kan fortsatt formidle en avvisning fra nettstedet.

Relaterte artikler