.NET HttpClient अनुरोध proxy बाट पठाउनुहोस्
HttpClientHandler मा WebProxy मिलाउनुहोस् र proxy बाटो बन्द रहन वा गलत 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 ले process वा OS को proxy पत्ता लगाउने प्रक्रियामा निर्भर हुनबाट बचाउँछ।
Proxy सञ्चालकले खाता दिए NetworkCredential लाई WebProxy.Credentials गुणमा राख्नुहोस्। वेबसाइटको Authorization अर्को चरणका लागि हो र सार्वजनिक IP:port प्रविष्टिले पूर्वनिर्धारित login दिँदैन। http:// listener ले tunnel मार्फत HTTPS बोक्न सक्छ; सामान्य लक्ष्य प्रमाणीकरण राख्नुहोस्।
यो छोटो कार्यक्रम सकिँदा object मुक्त गर्छ। दोहोरिने service call मा .NET client lifetime निर्देशन पालना गरेर हरेक अनुरोधमा connection pool फेरि बनाउनुको साटो workload का लागि client/handler राख्नुहोस्। फर्केको स्थिति हेर्नुहोस्: काम गर्ने proxy बाटोले पनि वेबसाइटको अस्वीकार ल्याउन सक्छ।