.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 प्रोजेक्ट के लिए सही है; पुराने प्रोजेक्ट statements को asynchronous Main में रख सकते हैं।
Handler की दोनों properties जाँचें: Proxy endpoint चुनती है और UseProxy=true उसका उपयोग चालू करती है। Endpoint अलग चले पर ऐप में न चले तो पुष्टि करें कि कोई कोड UseProxy बंद नहीं करता और call इसी instance को इस्तेमाल करती है। अलग handler process या OS के proxy खोजने पर निर्भरता टालता है।
Proxy संचालक खाता दे तो NetworkCredential को WebProxy.Credentials property में दें। वेबसाइट का Authorization दूसरे चरण के लिए है और सार्वजनिक IP:port प्रविष्टि default login नहीं देती। http:// listener tunnel से HTTPS ले जा सकता है; गंतव्य का सामान्य सत्यापन जारी रखें।
यह छोटा प्रोग्राम बाहर निकलते समय objects छोड़ता है। बार-बार service call के लिए .NET client lifetime मार्गदर्शन मानें और हर अनुरोध पर connection pool फिर बनाने के बजाय workload के लिए client/handler रखें। लौटा status देखें: काम करता proxy रास्ता भी वेबसाइट का इनकार ले आ सकता है।