HTTP প্রক্সি থেকে আসা Basic চ্যালেঞ্জের জন্য ProxyBasicAuthHandler ব্যবহার করুন। এই সাধারণ HTTP উদাহরণ পথ ও অ্যাকাউন্ট একই opener-এ রাখে:

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

proxy_url = 'http://proxy.example:8080'
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(
    None, proxy_url,
    os.environ['PROXY_USER'], os.environ['PROXY_PASSWORD'],
)
opener = build_opener(
    ProxyHandler({'http': proxy_url}),
    ProxyBasicAuthHandler(passwords),
)
with opener.open('http://example.com/', timeout=10) as response:
    print(response.status)

প্রকৃত এন্ডপয়েন্ট এবং অপারেটরের দেওয়া অ্যাকাউন্ট ব্যবহার করুন। এই হ্যান্ডলার প্রক্সির চ্যালেঞ্জের জন্য পাসওয়ার্ড ম্যানেজার ব্যবহার করে; ইচ্ছিত প্রক্সি URI ও realm মিলিয়ে নিন। গন্তব্যে Basic প্রমাণীকরণ অন্য হ্যান্ডলার ব্যবহার করে।

opener সরাসরিভাবে ডাকলে এই সেটআপ স্থানীয় থাকে। অনুরোধের URL ওয়েবসাইটই থাকে, মধ্যস্থতাকারী নয়। এই স্পষ্ট HTTP পথ Basic বিনিময় এনক্রিপ্ট করে না।

এই উদাহরণ থেকে HTTPS টানেল সমর্থন অনুমান করবেন না। CONNECT চলাকালীন 407 সেটআপের সময়েই, সাধারণ গন্তব্য প্রতিক্রিয়ার আগে ঘটে; নির্বাচিত ইন্টিগ্রেশনকে সেখানেই প্রমাণীকরণ সামলাতে হবে। ওয়েবসাইটের লগইন হ্যান্ডলার বদলে সেই আগের চ্যালেঞ্জ সারানো যায় না।

ক্রেডেনশিয়ালযুক্ত প্রক্সি URL পুরনো উদাহরণে পাওয়া আরেকটি ফরম্যাট। ব্যবহার করলে URL ডিলিমিটার সঠিকভাবে এনকোড করুন এবং উৎপন্ন গোপন-যুক্ত URL লগের বাইরে রাখুন।

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