.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 ਰਸਤਾ ਵੀ ਵੈੱਬਸਾਈਟ ਦਾ ਇਨਕਾਰ ਲਿਆ ਸਕਦਾ ਹੈ।