Tuma Maombi ya .NET HttpClient Kupitia Proksi
Sanidi WebProxy kwenye HttpClientHandler na uepuke njia ya proksi iliyozimwa au kuifunga kwa mteja asiye sahihi.
Ombi lazima litumie HttpClient iliyojengwa kwa handler yako ya proksi. Kuunda kitu cha WebProxy kisichohusika hakuathiri njia ya mteja mwingine.
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());Badilisha anwani ya nyaraka kwa proksi halisi ya HTTP kutoka huduma yako au orodha ya proksi za HTTP. Sintaksia hii ya kiwango cha juu inafaa mradi wa kisasa wa console C#; miradi ya zamani inaweza kuweka kauli katika Main ya asynchronous.
Kagua sifa zote mbili za handler: Proxy huchagua sehemu ya mwisho na UseProxy=true huwezesha kuitumia. Sehemu hiyo ikifanya kazi peke yake lakini si katika programu, thibitisha kuwa hakuna kodi inayozima UseProxy na kuwa mwito hutumia instance hii. Handler maalumu huepusha kutegemea ugunduzi wa proksi wa mchakato au OS.
Mwendeshaji wa proksi akitoa akaunti, weka NetworkCredential kwenye sifa ya WebProxy.Credentials. Authorization ya tovuti ni ya hatua tofauti, na ingizo la IP:port la umma halitoi taarifa za kawaida za kuingia. Sehemu ya kupokea http:// inaweza kubeba HTTPS kwa handaki; endeleza uthibitishaji wa kawaida wa lengwa.
Programu hii fupi huachilia vitu inapotoka. Kwa miito ya huduma inayorudiwa, fuata mwongozo wa .NET wa muda wa maisha ya mteja na uhifadhi mteja/handler kwa mzigo wa kazi badala ya kujenga upya makundi ya miunganisho kila ombi. Kagua hali inayorudishwa: njia ya proksi inayofanya kazi bado inaweza kubeba kukataliwa kwa tovuti.