Python urllib: HTTP கோரிக்கைகளுக்கான Basic ப்ராக்ஸி அங்கீகாரம்
Basic HTTP ப்ராக்ஸி சவாலுக்கு வெளிப்படையான urllib opener உருவாக்கி, இந்த சாதாரண HTTP பரிமாற்றத்தை HTTPS CONNECT அங்கீகாரத்திலிருந்து வேறுபடுத்துங்கள்.
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-ஐ பதிவுகளுக்கு வெளியே வைத்திருங்கள்.