Sūtiet .NET HttpClient pieprasījumus caur starpniekserveri
Iestatiet WebProxy objektā HttpClientHandler un izvairieties no izslēgta starpniekmaršruta vai piesaistes nepareizajam klientam.
Pieprasījumam jāizmanto HttpClient, kas izveidots ar jūsu starpniekservera apstrādātāju. Nesaistīta WebProxy objekta izveide nemaina cita klienta maršrutu.
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());Aizstājiet dokumentācijas adresi ar īstu HTTP starpniekserveri no sava pakalpojuma vai HTTP starpniekserveru saraksta. Šī augstākā līmeņa sintakse der modernam C# konsoles projektam; vecāki projekti var ievietot instrukcijas asinhronā Main.
Pārbaudiet abas apstrādātāja īpašības: Proxy izvēlas galapunktu un UseProxy=true ieslēdz tā lietošanu. Ja galapunkts darbojas atsevišķi, bet ne lietotnē, pārliecinieties, ka kods neizslēdz UseProxy un izsaukums lieto šo instanci. Atsevišķais apstrādātājs novērš atkarību no procesa vai OS starpniekservera noteikšanas.
Kad operators dod kontu, piešķiriet NetworkCredential īpašībai WebProxy.Credentials. Vietnes Authorization attiecas uz citu posmu, bet publisks IP:port ieraksts nedod noklusējuma pieteikšanās datus. http:// klausītājs var pārnest HTTPS pa tuneli; saglabājiet parasto mērķa pārbaudi.
Šī īsā programma darbības beigās atbrīvo objektus. Atkārtotiem pakalpojuma izsaukumiem ievērojiet .NET klienta dzīvescikla vadlīnijas un saglabājiet klientu/apstrādātāju darba slodzei, nevis veidojiet savienojumu pūlus no jauna katram pieprasījumam. Apskatiet atgriezto statusu: darbspējīgs starpniekservera ceļš joprojām var pārnest vietnes atteikumu.