.NET HttpClient-kérések küldése proxyn keresztül
Állítsa be a WebProxyt egy HttpClientHandleren, és kerülje el a kikapcsolt proxyroutingot vagy a rossz ügyfélhez rendelést.
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.