install_opener() দুবাৰ কল কৰিলে দ্বিতীয় opener-টো প্ৰথমটোত যোগ নহয়। ই module-ৰ default opener সলনি কৰে। যদি এটা বস্তুৱে প্ৰক্সী জানে আৰু আনটোৱে ৱেবছাইট লগইন জানে, তেন্তে প্ৰয়োজনীয় handler-সমূহ থকা এটা opener নিৰ্মাণ কৰক।

import os
from urllib.request import (ProxyHandler, HTTPBasicAuthHandler,
                            HTTPPasswordMgrWithDefaultRealm, build_opener)

passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(None, 'https://example.com/private/',
                       os.environ['SITE_USER'], os.environ['SITE_PASSWORD'])
opener = build_opener(
    ProxyHandler({'https': 'http://203.0.113.10:8080'}),
    HTTPBasicAuthHandler(passwords),
)
with opener.open('https://example.com/private/report', timeout=10) as response:
    body = response.read()

প্ৰক্সী আৰু গন্তব্য উদাহৰণ। ৰাজহুৱা HTTP প্ৰক্সীৰ জৰিয়তে পাব পৰা ৰাজহুৱা সেৱাৰ বাবে HTTP প্ৰক্সী তালিকায়ে ৰাউটিং handler-ৰ বাবে প্ৰাৰ্থী endpoint যোগান ধৰে। এই opener-এ HTTPS অনুৰোধ HTTP প্ৰক্সীৰ মাজেৰে পঠিয়ায় আৰু গন্তব্যৰ Basic challenge সামৰে। ই প্ৰক্সী authentication configure নকৰে।

যদি প্ৰক্সীয়েও লগইন বিচাৰে, তেন্তে সমৰ্থিত প্ৰক্সী-authentication ব্যৱস্থা পৃথকভাৱে বাছনি কৰক। CONNECT সময়ত 407 গন্তব্যে নিজৰ challenge দিয়াৰ আগতে ঘটে। password manager-ত ৱেবছাইট credentials যোগ কৰিলে সেই আগৰ বিনিময় পূৰণ কৰিব নোৱাৰে।

opener.open() পোনপটীয়াকৈ কল কৰিলে configuration-টো operation-ৰ সৈতে থাকে। module-wide default সলনি কৰাৰ প্ৰয়োজন নাই, যদিহে application-এ ইচ্ছাকৃতভাৱে সকলো convenience call এই opener ভাগ কৰিব বিচাৰে।

সম্পৰ্কিত প্ৰবন্ধ