Zahtjev mora koristiti HttpClient napravljen s vašim proxy handlerom. Pravljenje nepovezanog WebProxy objekta ne mijenja rutu drugog klijenta.

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

Dokumentacijsku adresu zamijenite stvarnim HTTP proxyjem iz svoje usluge ili s liste HTTP proxyja. Ova sintaksa najvišeg nivoa odgovara modernom C# konzolnom projektu; stariji projekti mogu staviti naredbe u asinhroni Main.

Provjerite oba svojstva handlera: Proxy bira krajnju tačku, a UseProxy=true omogućava korištenje. Ako tačka radi zasebno, ali ne u aplikaciji, potvrdite da kod ne isključuje UseProxy i da poziv koristi ovu instancu. Namjenski handler uklanja zavisnost od otkrivanja kroz proces ili OS.

Kada operator proxyja da račun, dodijelite NetworkCredential svojstvu WebProxy.Credentials. Authorization stranice pripada drugom koraku, a javni IP:port unos ne daje podrazumijevane podatke za prijavu. Osluškivač http:// može prenositi HTTPS tunelom; zadržite uobičajenu provjeru odredišta.

Ovaj kratki program oslobađa objekte pri izlasku. Za ponovljene pozive usluge pratite .NET smjernice o životnom vijeku klijenta i zadržite klijenta i handler za opterećenje, umjesto ponovne izgradnje bazena veza za svaki zahtjev. Pregledajte vraćeni status: ispravna proxy ruta i dalje može prenijeti odbijanje stranice.

Povezani članci