Lähetä .NET HttpClient -pyynnöt välityspalvelimen kautta
Määritä WebProxy HttpClientHandleriin äläkä jätä välityspalvelinreititystä pois päältä tai liitä sitä väärään asiakkaaseen.
Pyynnön on käytettävä proxykäsittelijälläsi luotua HttpClient-oliota. Erillisen WebProxy-olion luominen ei muuta toisen asiakkaan reittiä.
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());Korvaa dokumentaatio-osoite palvelusi aidolla HTTP-välityspalvelimella tai HTTP-välityspalvelinluettelon ehdokkaalla. Tämä ylätason syntaksi sopii moderniin C#-konsoliprojektiin; vanhemmissa projekteissa lauseet voi sijoittaa asynkroniseen Main-metodiin.
Tarkista käsittelijän molemmat ominaisuudet: Proxy valitsee päätepisteen ja UseProxy=true sallii sen käytön. Jos päätepiste toimii erikseen muttei sovelluksessa, varmista, ettei koodi poista UseProxy-asetusta käytöstä ja että kutsu käyttää tätä ilmentymää. Oma käsittelijä välttää riippuvuuden prosessin tai käyttöjärjestelmän automaattisesta löytämisestä.
Kun välityspalvelimen ylläpitäjä antaa tilin, sijoita NetworkCredential ominaisuuteen WebProxy.Credentials. Verkkosivuston Authorization koskee eri vaihetta, eikä julkinen IP:port-merkintä tarjoa oletuskirjautumistietoja. http://-kuuntelija voi kuljettaa HTTPS:ää tunnelissa; säilytä tavallinen kohteen varmennus.
Tämä lyhyt ohjelma vapauttaa oliot päättyessään. Toistuvissa palvelukutsuissa noudata .NETin asiakkaan elinkaariopastusta ja säilytä asiakas/käsittelijä työkuormalle sen sijaan, että luot yhteyspoolit uudelleen joka pyynnöllä. Tarkista palautettu tila: toimivakin välityspalvelinreitti voi välittää verkkosivuston torjunnan.