using var handler = new HttpClientHandler
{
    UseProxy = true,
    Proxy = new WebProxy("http://proxy.example:8080")
};
using var client = new HttpClient(handler);

string html = await client.GetStringAsync(
    "https://www.example.com/catalog");
var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);

આ આધુનિક .NET સ્નિપેટ System.Net અને System.Net.Http વાપરે છે. રૂપરેખાંકિત ક્લાયન્ટ નેટવર્ક રાઉટિંગ સંભાળે છે, અને Html Agility Pack પરત મળેલી HTML સ્ટ્રિંગ મેળવે છે. દરેક પૃષ્ઠ માટે તેના પૂલ ફરીથી બનાવવાને બદલે ચાલુ કામ માટે યોગ્ય રીતે રૂપરેખાંકિત ક્લાયન્ટ રાખો.

આ જાહેર પૃષ્ઠના ઉદાહરણ માટે, HTTP પ્રોક્સી સૂચિમાંથી એક પ્રમાણિત ન કરેલ ઉમેદવાર મધ્યસ્થને બદલી શકે છે. ગંતવ્યને અલગથી બદલો. વેબસાઇટ URL તેની TLS ઓળખ જાળવી રાખે છે. પ્રમાણિત પ્રોક્સી ક્રેડેન્શિયલ WebProxy પર આવે છે; ન તો વેબસાઇટ ક્રેડેન્શિયલ કે ન તો નિષ્ક્રિય ચકાસણી તેમનું સ્થાન લે છે.

GetStringAsync અસફળ HTTP સ્થિતિઓને ભૂલો તરીકે ગણે છે. નિષ્ફળ ડાઉનલોડને ખાલી HtmlDocument માં રૂપાંતરિત કરશો નહીં. જો એપ્લિકેશનને હેડર, સ્થિતિની વિગતો અથવા ભૂલનું બોડી જોઈએ, તો પ્રતિસાદ-લક્ષી HTTP ક્રિયા વાપરો અને પાર્સ કરતા પહેલાં તેની તપાસ કરો.

સ્ટ્રિંગ પદ્ધતિ કાચા બાઇટ્સના બિનશરતી વધારાના UTF-8 રૂપાંતરણને ટાળે છે. જો તમે જાણી જોઈને બાઇટ્સ મેળવો છો, તો પ્રતિસાદ અને દસ્તાવેજના એન્કોડિંગની આવશ્યકતાઓને ડીકોડિંગમાં લઈ જાઓ.

LoadHtml પાર્સ કરેલ દસ્તાવેજ ઉત્પન્ન કરે છે; તે સ્ક્રિપ્ટ ચલાવતું નથી, સ્ટાઇલ લોડ કરતું નથી કે લિંકનું અનુસરણ કરતું નથી. અનુગામી સાપેક્ષ લિંકને પ્રતિસાદના સ્થાનની સાપેક્ષે ઉકેલો, અને યાદ રાખો કે બ્રાઉઝર દ્વારા રેન્ડર થયેલ તત્વો ડાઉનલોડ કરેલા સ્રોતમાં ગેરહાજર હોઈ શકે છે. વિનંતીઓ એક જ રૂપરેખાંકિત HTTP ક્લાયન્ટ વહેંચે તો પણ દરેક પ્રતિસાદે પોતાનું દસ્તાવેજ બનાવવું જોઈએ.

સંબંધિત લેખો