Stuur .NET HttpClient-versoeke deur ’n proxy
Stel WebProxy op ’n HttpClientHandler op en vermy afgeskakelde proxyroetering of koppeling aan die verkeerde kliënt.
Die versoek moet die HttpClient gebruik wat met jou proxyhandler gebou is. Om ’n onverwante WebProxy-objek te skep, verander nie ’n ander kliënt se roete nie.
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());Vervang die dokumentasieadres met ’n regte HTTP-proxy van jou diens of die HTTP-proxylys. Hierdie topvlaksintaksis pas ’n moderne C#-konsoleprojek; ouer projekte kan die stellings in ’n asinchrone Main plaas.
Kontroleer albei handlereienskappe: Proxy kies die eindpunt en UseProxy=true aktiveer die gebruik daarvan. Werk die eindpunt apart maar nie in jou toepassing nie, bevestig dat geen kode UseProxy afskakel nie en dat die oproep hierdie instansie gebruik. Die toegewyde handler vermy afhanklikheid van proses- of OS-ontdekking.
Wanneer die proxyoperateur ’n rekening voorsien, ken ’n NetworkCredential aan die WebProxy.Credentials-eienskap toe. Die webwerf se Authorization geld vir ’n ander sprong, en ’n openbare IP:port-inskrywing gee geen verstekaanmelding nie. ’n http://-luisteraar kan HTTPS deur tonneling vervoer; behou normale bestemmingsverifikasie.
Hierdie kort program ruim objekte by afsluiting op. Volg by herhaalde diensoproepe die .NET-riglyne oor kliëntlewensduur en behou kliënt/handler vir die werklading, eerder as om verbindingspoele per versoek te herbou. Ondersoek die teruggestuurde status: ’n werkende proxyroete kan steeds ’n webwerfweiering oordra.