.NET HttpClient கோரிக்கைகளை ப்ராக்ஸி வழியாக அனுப்புங்கள்
HttpClientHandler-இல் WebProxy அமைத்து, ப்ராக்ஸி வழித்தடம் அணைந்திருப்பதையோ தவறான கிளையன்டுடன் இணைப்பதையோ தவிருங்கள்.
கோரிக்கை உங்கள் ப்ராக்ஸி handler கொண்டு உருவாக்கிய HttpClient பயன்படுத்த வேண்டும். தொடர்பற்ற WebProxy object உருவாக்குவது மற்றொரு கிளையன்டின் வழியை மாற்றாது.
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 ப்ராக்ஸியால் மாற்றுங்கள். இந்த top-level syntax நவீன C# console திட்டத்துக்குப் பொருந்தும்; பழைய திட்டங்கள் கட்டளைகளை asynchronous Main-இல் வைக்கலாம்.
Handler-இன் இரு பண்புகளையும் பாருங்கள்: Proxy முனையத்தைத் தேர்கிறது, UseProxy=true அதன் பயன்பாட்டை இயக்குகிறது. முனையம் தனியாக வேலை செய்து செயலியில் செய்யாவிட்டால், எந்தக் குறியீடும் UseProxy அணைக்கவில்லை என்றும் அழைப்பு இந்த instance பயன்படுத்துகிறது என்றும் உறுதிசெய்யுங்கள். தனி handler செயல்முறை அல்லது OS ப்ராக்ஸி கண்டறிதலை நம்பியிருப்பதைத் தவிர்க்கிறது.
ப்ராக்ஸி இயக்குநர் கணக்கு வழங்கினால் NetworkCredential என்பதை WebProxy.Credentials பண்பிற்கு ஒதுக்குங்கள். வலைத்தள Authorization வேறொரு கட்டத்திற்கானது; பொது IP:port பதிவு இயல்புநிலை உள்நுழைவுத் தகவலைத் தராது. http:// லிஸனர் சுரங்கம் வழியாக HTTPS எடுத்துச் செல்லலாம்; வழக்கமான இலக்குச் சரிபார்ப்பை வைத்திருங்கள்.
இந்தச் சிறு நிரல் வெளியேறும்போது object-களை விடுவிக்கிறது. தொடர்ச்சியான service call-களுக்கு .NET client lifetime வழிகாட்டலைப் பின்பற்றி, ஒவ்வொரு கோரிக்கைக்கும் connection pool மறுபடியும் கட்டாமல் பணிச்சுமைக்கு client/handler வைத்திருங்கள். திரும்பும் நிலையைப் பாருங்கள்: வேலை செய்யும் ப்ராக்ஸிப் பாதையும் வலைத்தள மறுப்பைக் கொண்டுவரலாம்.