WebProxy નો URI કન્સ્ટ્રક્ટર એક એન્ડપોઇન્ટ પસંદ કરે છે; તે તે URI ની વપરાશકર્તા માહિતીથી Credentials ભરતો નથી. એપ્લિકેશન-ચકાસાયેલ HTTP પ્રોક્સી URL માટે:

var uri = new Uri(proxyUrl);
var endpoint = new UriBuilder(uri)
{
    UserName = "",
    Password = ""
};

var proxy = new System.Net.WebProxy(endpoint.Uri);

if (uri.UserInfo.Length > 0)
{
    var parts = uri.UserInfo.Split(new[] { ':' }, 2);
    var username = Uri.UnescapeDataString(parts[0]);
    var password = parts.Length == 2
        ? Uri.UnescapeDataString(parts[1])
        : "";

    proxy.Credentials =
        new System.Net.NetworkCredential(username, password);
}

proxyUrl એ આપેલું પ્રોક્સી URL છે, વેબસાઇટ URL નહીં. Uri તેના authority નું પાર્સિંગ કરે છે, જ્યારે UriBuilder WebProxy માં સંગ્રહિત એન્ડપોઇન્ટમાંથી વપરાશકર્તા માહિતી દૂર કરે છે.

ઘટકોને ડિકોડ કરતા પહેલા પહેલા શાબ્દિક કોલન પર વિભાજિત કરો. આ વપરાશકર્તાનામની અંદર એન્કોડ કરેલ કોલન જાળવી રાખે છે અને પાસવર્ડની વધારાની કોલન પાસવર્ડમાં જ રાખે છે. દરેક ઘટકને એક વાર ડિકોડ કરો; પાસવર્ડને Base64 માં એન્કોડ ન કરો, તેના બદલે URL એસ્કેપિંગ કરો.

અંતે, હેન્ડલર વિનંતીઓ શરૂ કરે તે પહેલા proxy ને ઇચ્છિત HTTP હેન્ડલરને સોંપો. ફક્ત ઑબ્જેક્ટ બનાવવાથી બીજા ક્લાયન્ટની રાઉટિંગ નીતિ બદલાતી નથી.

સંબંધિત લેખો