Python urllib: প্ৰক্সী ৰাউটিঙৰ সৈতে ৱেবছাইট Basic Authentication একত্ৰিত কৰক
গ্ল'বেল opener দুবাৰ সলনি নকৰাকৈ urllib ৰাউটিং আৰু গন্তব্য Basic authentication একেটা স্পষ্ট opener-ত একত্ৰিত কৰক।
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 ভাগ কৰিব বিচাৰে।