વિનંતીએ તમારા proxy handlerથી બનાવેલો HttpClient વાપરવો જોઈએ. અસંબંધિત WebProxy ઓબ્જેક્ટ બનાવવાથી બીજા 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 બંધ કરતો નથી અને કૉલ આ જ instance વાપરે છે તેની ખાતરી કરો. અલગ handler પ્રક્રિયા કે OSની proxy શોધ પર આધાર ટાળે છે.

Proxy સંચાલક ખાતું આપે ત્યારે NetworkCredentialને WebProxy.Credentials પ્રોપર્ટીમાં સોંપો. વેબસાઇટનું Authorization અલગ તબક્કા માટે છે અને જાહેર IP:port એન્ટ્રી મૂળભૂત login આપતી નથી. http:// listener tunnelથી HTTPS લઈ જઈ શકે છે; લક્ષ્યની સામાન્ય ચકાસણી ચાલુ રાખો.

આ નાનો પ્રોગ્રામ બંધ થાય ત્યારે ઓબ્જેક્ટ મુક્ત કરે છે. વારંવાર service call માટે .NET client lifetime માર્ગદર્શન અનુસરો અને દરેક વિનંતીએ connection pool ફરી બનાવવાને બદલે workload માટે client/handler રાખો. પરત મળેલી સ્થિતિ તપાસો: કાર્યરત proxy માર્ગ પણ વેબસાઇટનો ઇનકાર લઈ આવી શકે છે.

સંબંધિત લેખો