അഭ്യർഥന നിങ്ങളുടെ പ്രോക്സി ഹാൻഡ്ലർ ഉപയോഗിച്ച് നിർമ്മിച്ച HttpClient ഉപയോഗിക്കണം. ബന്ധമില്ലാത്ത WebProxy ഒബ്ജക്ട് സൃഷ്ടിക്കുന്നത് മറ്റൊരു ക്ലയന്റിന്റെ വഴി മാറ്റില്ല.

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

രേഖയിലെ വിലാസം സ്വന്തം സേവനത്തിലെ അല്ലെങ്കിൽ HTTP പ്രോക്സി പട്ടികയിലെ യഥാർഥ HTTP പ്രോക്സിയാൽ മാറ്റുക. ഈ ടോപ്-ലെവൽ സിന്റാക്സ് ആധുനിക C# കൺസോൾ പ്രോജക്ടിന് ചേരും; പഴയ പ്രോജക്ടുകൾക്ക് പ്രസ്താവനകൾ അസിങ്ക്രണസ് Main-ൽ ഇടാം.

ഹാൻഡ്ലറിന്റെ രണ്ടു പ്രോപ്പർട്ടികളും നോക്കുക: Proxy എൻഡ്പോയിന്റ് തിരഞ്ഞെടുക്കുന്നു, UseProxy=true ഉപയോഗം പ്രവർത്തനക്ഷമമാക്കുന്നു. എൻഡ്പോയിന്റ് ഒറ്റയ്ക്ക് പ്രവർത്തിച്ചിട്ടും ആപ്പിൽ പ്രവർത്തിക്കുന്നില്ലെങ്കിൽ കോഡ് UseProxy ഓഫാക്കുന്നില്ലെന്നും കോൾ ഈ ഇൻസ്റ്റൻസ് ഉപയോഗിക്കുന്നുവെന്നും ഉറപ്പാക്കുക. പ്രത്യേക ഹാൻഡ്ലർ പ്രോസസ് അല്ലെങ്കിൽ OS പ്രോക്സി കണ്ടെത്തലിനെ ആശ്രയിക്കേണ്ടത് ഒഴിവാക്കുന്നു.

പ്രോക്സി നടത്തിപ്പുകാരൻ അക്കൗണ്ട് നൽകിയാൽ NetworkCredential-നെ WebProxy.Credentials പ്രോപ്പർട്ടിയിൽ നൽകുക. വെബ്സൈറ്റ് Authorization മറ്റൊരു ഘട്ടത്തിനാണ്; പൊതു IP:port എൻട്രി സ്ഥിര ലോഗിൻ വിവരം നൽകുന്നില്ല. http:// ലിസണറിന് ടണലിലൂടെ HTTPS കൊണ്ടുപോകാം; സാധാരണ ലക്ഷ്യസ്ഥാന പരിശോധന നിലനിർത്തുക.

ഈ ചെറുപ്രോഗ്രാം അവസാനിക്കുമ്പോൾ ഒബ്ജക്ടുകൾ വിട്ടുകൊടുക്കുന്നു. ആവർത്തിച്ചുള്ള സേവന കോളുകൾക്ക് .NET ക്ലയന്റ് ആയുസ് നിർദേശം പിന്തുടർന്ന് ഓരോ അഭ്യർഥനയ്ക്കും കണക്ഷൻ പൂളുകൾ പുനർനിർമ്മിക്കാതെ ജോലിഭാരത്തിന് ക്ലയന്റ്/ഹാൻഡ്ലർ നിലനിർത്തുക. മടങ്ങുന്ന സ്റ്റാറ്റസ് നോക്കുക: പ്രവർത്തിക്കുന്ന പ്രോക്സി വഴിയും വെബ്സൈറ്റിന്റെ നിരസനം കൊണ്ടുവരാം.

അനുബന്ധ ലേഖനങ്ങൾ