A kérésnek a proxykezelővel létrehozott HttpClient objektumot kell használnia. Egy független WebProxy objektum létrehozása nem befolyásolja egy másik ügyfél útvonalát.

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

Cserélje a dokumentációs címet a szolgáltatása valódi HTTP-proxyjára vagy a HTTP-proxylista egyik elemére. Ez a felső szintű szintaxis modern C#-konzolprojekthez illik; régebbi projektek aszinkron Main metódusba tehetik az utasításokat.

Ellenőrizze a kezelő mindkét tulajdonságát: a Proxy választja a végpontot, a UseProxy=true engedélyezi a használatát. Ha a végpont külön működik, de az alkalmazásban nem, győződjön meg arról, hogy nincs UseProxy beállítást kikapcsoló kód, és a hívás ezt a példányt használja. A saját kezelő elkerüli a folyamat vagy az operációs rendszer felderítésére támaszkodást.

Ha a proxy üzemeltetője fiókot ad, rendeljen NetworkCredential példányt a WebProxy.Credentials tulajdonsághoz. A webhely Authorization mezője másik lépéshez tartozik, a nyilvános IP:port bejegyzés nem ad alapértelmezett bejelentkezést. Egy http://-figyelő alagúton vihet HTTPS-t; tartsa meg a szokásos célellenőrzést.

Ez a rövid program kilépéskor felszabadítja az objektumokat. Ismételt szolgáltatáshívásoknál kövesse a .NET ügyfélélettartamra vonatkozó útmutatását, és tartsa meg az ügyfelet/kezelőt a terheléshez, ne építse újra a kapcsolatkészleteket minden kérésnél. Vizsgálja a visszaadott állapotot: egy működő proxyútvonal is továbbíthat webhelyi elutasítást.

Kapcsolódó cikkek