.NET HttpClient ವಿನಂತಿಗಳನ್ನು proxy ಮೂಲಕ ಕಳುಹಿಸಿ
HttpClientHandler ನಲ್ಲಿ WebProxy ಹೊಂದಿಸಿ, proxy routing ನಿಷ್ಕ್ರಿಯವಾಗಿರುವುದು ಅಥವಾ ತಪ್ಪು clientಗೆ ಜೋಡಿಸುವುದನ್ನು ತಪ್ಪಿಸಿ.
ವಿನಂತಿ ನಿಮ್ಮ proxy handler ಮೂಲಕ ನಿರ್ಮಿಸಿದ HttpClient ಬಳಸಬೇಕು. ಸಂಬಂಧವಿಲ್ಲದ WebProxy object ರಚಿಸುವುದರಿಂದ ಬೇರೆ clientನ ಮಾರ್ಗ ಬದಲಾಗುವುದಿಲ್ಲ.
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 proxy ಪಟ್ಟಿಯ ನಿಜವಾದ HTTP proxyಯಿಂದ ಬದಲಿಸಿ. ಈ top-level syntax ಆಧುನಿಕ C# console ಯೋಜನೆಗೆ ಸೂಕ್ತ; ಹಳೆಯ ಯೋಜನೆಗಳು ಹೇಳಿಕೆಗಳನ್ನು asynchronous Main ಒಳಗೆ ಇಡಬಹುದು.
Handlerನ ಎರಡೂ ಗುಣಲಕ್ಷಣ ಪರಿಶೀಲಿಸಿ: Proxy endpoint ಆಯ್ದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು UseProxy=true ಅದರ ಬಳಕೆ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. Endpoint ಪ್ರತ್ಯೇಕವಾಗಿ ಕೆಲಸ ಮಾಡಿ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಮಾಡದಿದ್ದರೆ, ಯಾವುದೇ ಕೋಡ್ UseProxy ನಿಷ್ಕ್ರಿಯಗೊಳಿಸದಿರುವುದು ಮತ್ತು call ಇದೇ instance ಬಳಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿ. ಪ್ರತ್ಯೇಕ handler ಪ್ರಕ್ರಿಯೆ ಅಥವಾ OSನ proxy ಪತ್ತೆಗೆ ಅವಲಂಬನೆಯನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.
Proxy ನಿರ್ವಾಹಕ ಖಾತೆ ನೀಡಿದಾಗ NetworkCredential ಅನ್ನು WebProxy.Credentials ಗುಣಲಕ್ಷಣಕ್ಕೆ ನಿಯೋಜಿಸಿ. ವೆಬ್ಸೈಟ್ Authorization ಬೇರೆ ಹಂತಕ್ಕೆ ಸಂಬಂಧಿಸಿದೆ; ಸಾರ್ವಜನಿಕ IP:port ನಮೂದು ಪೂರ್ವನಿಯೋಜಿತ login ಕೊಡುವುದಿಲ್ಲ. http:// listener tunnel ಮೂಲಕ HTTPS ಸಾಗಿಸಬಲ್ಲದು; ಗಮ್ಯಸ್ಥಾನದ ಸಾಮಾನ್ಯ ಪರಿಶೀಲನೆ ಉಳಿಸಿ.
ಈ ಚಿಕ್ಕ ಪ್ರೋಗ್ರಾಂ ಮುಗಿಯುವಾಗ objectಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ. ಮರುಕಳಿಸುವ service callಗಳಿಗೆ .NET client lifetime ಮಾರ್ಗದರ್ಶನ ಅನುಸರಿಸಿ ಮತ್ತು ಪ್ರತಿ ವಿನಂತಿಗೆ connection pool ಮರುನಿರ್ಮಿಸದೆ ಕೆಲಸದ ಹೊರೆಗೆ client/handler ಉಳಿಸಿ. ಹಿಂದಿರುಗಿದ status ಪರಿಶೀಲಿಸಿ: ಕೆಲಸ ಮಾಡುವ proxy ಮಾರ್ಗವೂ ವೆಬ್ಸೈಟ್ ತಿರಸ್ಕಾರ ತರಬಹುದು.