Pošiljanje zahtev .NET HttpClient prek posrednika
Nastavite WebProxy na HttpClientHandler ter preprečite izklopljeno posredniško usmerjanje ali povezavo z napačnim odjemalcem.
Zahteva mora uporabljati HttpClient, ustvarjen z vašim posredniškim obdelovalnikom. Ustvarjanje nepovezanega objekta WebProxy ne spremeni poti drugega odjemalca.
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());Dokumentacijski naslov zamenjajte s pravim posrednikom HTTP svoje storitve ali s seznama posrednikov HTTP. Ta vrhnja sintaksa ustreza sodobnemu konzolnemu projektu C#; starejši projekti lahko stavke postavijo v asinhroni Main.
Preverite obe lastnosti obdelovalnika: Proxy izbere končno točko, UseProxy=true pa omogoči uporabo. Če točka deluje sama, ne pa v aplikaciji, potrdite, da koda ne izklaplja UseProxy in da klic uporablja ta primerek. Namenski obdelovalnik odpravi odvisnost od odkrivanja v procesu ali operacijskem sistemu.
Ko upravljavec posrednika da račun, dodelite NetworkCredential lastnosti WebProxy.Credentials. Authorization spletnega mesta zadeva drug korak, javni vnos IP:port pa ne vsebuje privzetih prijavnih podatkov. Poslušalec http:// lahko prenaša HTTPS skozi predor; ohranite običajno preverjanje cilja.
Ta kratek program ob izhodu sprosti objekte. Pri ponavljajočih klicih storitve upoštevajte smernice .NET za življenjsko dobo odjemalca in ga skupaj z obdelovalnikom ohranite za obremenitev, namesto da bi ob vsaki zahtevi ponovno gradili zaloge povezav. Preverite vrnjeno stanje: delujoča pot posrednika lahko še vedno prenese zavrnitev spletnega mesta.