from urllib.request import ProxyHandler, build_opener

def make_proxy_opener(proxy_uri):
    return build_opener(ProxyHandler({
        "http": proxy_uri,
        "https": proxy_uri,
    }))

opener = make_proxy_opener("http://proxy.example.net:8080")
# Use opener.open(destination, timeout=10) for this route.

මාර්ගය පරීක්ෂණයට අයත් විට මෙම opener හිම open ක්‍රමය අමතන්න. උදාහරණයේ HTTP අන්ත ලක්ෂ්‍යය ඔබේ සේවාවෙන් හෝ පොදු පරීක්ෂණ සඳහා HTTP ප්‍රොක්සි ලැයිස්තුවෙන් පැමිණිය හැක. මෙම කොටස හිමිකාරිත්වය පෙන්වයි; එය සම්පූර්ණ සත්‍යාපනය හෝ සෞඛ්‍ය ප්‍රතිපත්තිය නිර්වචනය නොකරයි. ගිණුම්-විශේෂිත ඕනෑම handler එම අදහස් කළ සේවාදායකයට සම්බන්ධව තබා ගන්න.

urllib.request.install_opener() පසුව module මට්ටමේ urlopen() ඇමතුම් භාවිත කරන ක්‍රියාවලි-පුරා පෙරනිමිය වෙනස් කරයි. එබැවින් ප්‍රොක්සි හරහා ගමන් කරන පරීක්ෂකයෙකුට අදාළ නොවන ඉල්ලීම් එහි අවසාන අන්ත ලක්ෂ්‍යය භාවිත කිරීමට ඉඩ හැරිය හැක. තාවකාලිකව ස්ථාපනය කර පිරිසිදු කිරීමේදී ප්‍රතිස්ථාපනය කිරීම තවමත් හවුල් වෙනස්කම අතරතුර සමගාමී ඉල්ලීම් ක්‍රියාත්මක වීමට ඉඩ දෙයි.

socket.setdefaulttimeout() එසේම පසුව සාදන socket සඳහා පෙරනිමි වෙනස් කරයි. එය ලබා ගත යුත්තේ පරීක්ෂණයට පමණක් නම් ක්‍රියාවලි මට්ටමේ කාල සීමාව භාවිත කරන්න.

පරීක්ෂණ ප්‍රතිචාර වසා දමා ප්‍රතිඵල නිශ්චිතව තබා ගන්න: HTTP දෝෂ ප්‍රතිචාරයක් ස්වයංක්‍රීයව මළ ප්‍රොක්සි ශ්‍රවණයෙකු නොවේ. async සේවාවක synchronous urllib පරීක්ෂණයක් භාවිත කරන්නේ නම්, අවහිර කරන කාර්යය සුදුසු worker වෙත ගෙන යන්න; එම ක්‍රියාත්මක කිරීමේ තීරණය ගෝලීය opener වෙනස්කම හුදකලා නොකරයි.

පරීක්ෂණයක් වෙනත් ජාල ප්‍රතිපත්තියක් පිටුපස නොතබා එහි නිරීක්ෂණය ආපසු දිය යුතුය. එහිම සේවාදායක වස්තුව සහ සීමිත ක්‍රියාවලිය එම සීමාව පැහැදිලි කරයි.

අදාළ ලිපි