विनंतीने तुमच्या 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 पुन्हा बनवण्याऐवजी कामासाठी client/handler ठेवा. परत आलेली स्थिती तपासा: चालणारा proxy मार्गही वेबसाइटचा नकार वाहून आणू शकतो.

संबंधित लेख