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 ସେହି ଉଦ୍ଦିଷ୍ଟ client ସହିତ ସଂଯୁକ୍ତ ରଖନ୍ତୁ।

urllib.request.install_opener() ପ୍ରକ୍ରିୟା-ବ୍ୟାପୀ ଡିଫଲ୍ଟ ବଦଳାଏ ଯାହାକୁ ପରବର୍ତ୍ତୀ module-ସ୍ତରୀୟ urlopen() କଲ ବ୍ୟବହାର କରେ। ତେଣୁ ପ୍ରକ୍ସି ମଧ୍ୟରେ ବୁଲୁଥିବା ଚେକର ଅସମ୍ପର୍କିତ ଅନୁରୋଧଗୁଡ଼ିକୁ ଏହାର ଶେଷ ଏଣ୍ଡପଏଣ୍ଟରେ ଛାଡ଼ିପାରେ। ଅସ୍ଥାୟୀ ଭାବରେ ସ୍ଥାପନ କରି ସଫାଇ ସମୟରେ ପୁନଃସ୍ଥାପନ କରିବା ତଥାପି ସହଭାଗୀ ପରିବର୍ତ୍ତନ ସମୟରେ ସମବର୍ତ୍ତୀ ଅନୁରୋଧଗୁଡ଼ିକୁ ଚଳିବାକୁ ଦିଏ।

socket.setdefaulttimeout() ସେହିପରି ପରେ ସୃଷ୍ଟି ହେଉଥିବା socket ପାଇଁ ଡିଫଲ୍ଟ ବଦଳାଏ। ଯେତେବେଳେ କେବଳ ଯାଞ୍ଚକୁ ଏହା ମିଳିବା ଉଚିତ, ସେତେବେଳେ କାର୍ଯ୍ୟ-ସ୍ତରୀୟ ଟାଇମଆଉଟ ବ୍ୟବହାର କରନ୍ତୁ।

ଯାଞ୍ଚର ପ୍ରତିକ୍ରିୟା ବନ୍ଦ କରନ୍ତୁ ଏବଂ ଫଳାଫଳକୁ ନିର୍ଦ୍ଦିଷ୍ଟ ରଖନ୍ତୁ: HTTP ତ୍ରୁଟି ପ୍ରତିକ୍ରିୟା ସ୍ୱୟଂଚାଳିତ ଭାବରେ ମୃତ ପ୍ରକ୍ସି ଶ୍ରୋତା ନୁହେଁ। ଯଦି async ସେବାରେ synchronous urllib ଯାଞ୍ଚ ବ୍ୟବହୃତ ହୁଏ, ଅବରୋଧକାରୀ କାର୍ଯ୍ୟକୁ ଉପଯୁକ୍ତ worker କୁ ସ୍ଥାନାନ୍ତର କରନ୍ତୁ; ସେହି କାର୍ଯ୍ୟାନ୍ୱୟନ ନିଷ୍ପତ୍ତି ବୈଶ୍ୱିକ opener ପରିବର୍ତ୍ତନକୁ ପୃଥକ କରେ ନାହିଁ।

ଯାଞ୍ଚ ଅନ୍ୟ ନେଟୱର୍କ ନୀତି ଛାଡ଼ି ନ ଦେଇ ଏହାର ପର୍ଯ୍ୟବେକ୍ଷଣ ଫେରାଇବା ଉଚିତ। ଏହାର ନିଜସ୍ୱ client ବସ୍ତୁ ଏବଂ ସୀମିତ କାର୍ଯ୍ୟ ସେହି ସୀମାକୁ ସ୍ପଷ୍ଟ କରେ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ