ପ୍ରକ୍ସି ପାସୱାର୍ଡରେ ବିଶେଷ ଅକ୍ଷର
@, କୋଲନ୍, ସ୍ଲାଶ୍ ଓ # ଯେପରି URL ନ ବିଗାଡ଼ନ୍ତି, ପ୍ରକ୍ସି ବ୍ୟବହାରକାରୀ ନାମ ଓ ପାସୱାର୍ଡକୁ ଅଲଗା ଏନକୋଡ୍ କରନ୍ତୁ।
ପ୍ରବେଶ ତଥ୍ୟ ଠିକ୍ ଥିଲେ ମଧ୍ୟ @ କିମ୍ବା # ଥିବା ପାସୱାର୍ଡ ହାତରେ ତିଆରି ପ୍ରକ୍ସି URL ବିଗାଡ଼ିପାରେ। ଏହି ଅକ୍ଷରଗୁଡ଼ିକର URL ଭିତରେ ପୂର୍ବରୁ ଅର୍ଥ ରହିଛି, ତେଣୁ କ୍ଲାଏଣ୍ଟ ପାସୱାର୍ଡର ଅଂଶକୁ ହୋଷ୍ଟନାମ୍ କିମ୍ବା ଫ୍ରାଗମେଣ୍ଟ ଭାବେ ପଢ଼ିପାରେ।
ପ୍ରବେଶ ତଥ୍ୟର ଦୁଇ କ୍ଷେତ୍ର ଅଲଗା ଏନକୋଡ୍ କରନ୍ତୁ
ଏହି ଉଦାହରଣ URL ର ଗଠନମୂଳକ ବିଭାଜକ ରଖି କେବଳ ବ୍ୟବହାରକାରୀ ନାମ ଓ ପାସୱାର୍ଡ ଏନକୋଡ୍ କରେ:
from urllib.parse import quote
username = "user@team"
password = "p:a/ss#?"
proxy_url = (
"http://"
+ quote(username, safe="")
+ ":"
+ quote(password, safe="")
+ "@203.0.113.10:8080"
)
ନିଜ ପ୍ରକୃତ ଏଣ୍ଡପଏଣ୍ଟ ଓ ପ୍ରବେଶ ତଥ୍ୟ ବ୍ୟବହାର କରନ୍ତୁ। ଦେଖାଯାଇଥିବା ଠିକଣା ଦଲିଲର ଉଦାହରଣ। ଖାଲି safe ଆର୍ଗୁମେଣ୍ଟ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ: quote ସାଧାରଣତଃ ସ୍ଲାଶ୍କୁ ଏସ୍କେପ୍ ନ କରି ଛାଡ଼େ, କିନ୍ତୁ ଏହି ପ୍ରବେଶ କ୍ଷେତ୍ରର ସ୍ଲାଶ୍ ଏନକୋଡ୍ ହେବା ଦରକାର।
ପୂରା ପ୍ରକ୍ସି URL ଏନକୋଡ୍ କରନ୍ତୁ ନାହିଁ। ସ୍କିମ୍ ବିଭାଜକ ଏବଂ ପ୍ରବେଶ ତଥ୍ୟ ଓ ହୋଷ୍ଟ ମଧ୍ୟରେ @ ଏନକୋଡ୍ କଲେ ରଖିବାକୁ ଚାହୁଁଥିବା ଗଠନ ନଷ୍ଟ ହୁଏ। ପୂର୍ବରୁ ଏନକୋଡ୍ ହୋଇଥିବା ପାସୱାର୍ଡକୁ ଦ୍ୱିତୀୟଥର ଏନକୋଡ୍ କରିବା ମଧ୍ୟ ଏଡ଼ାନ୍ତୁ।
ଫଳ Requests ସହ ବ୍ୟବହାର କରନ୍ତୁ
import requests
response = requests.get(
"https://example.com/",
proxies={"http": proxy_url, "https": proxy_url},
timeout=(5, 15),
)
response.raise_for_status()
ଅନୁରୋଧ ତଥାପି ବିଫଳ ହେଲେ ପ୍ରକ୍ସି ଲଗଇନ୍ ନାକଚ କରୁଛି କି କ୍ଲାଏଣ୍ଟ ଆଗରୁ ପାର୍ସିଂ କିମ୍ବା ସଂଯୋଗରେ ବିଫଳ ହେଲା ଯାଞ୍ଚ କରନ୍ତୁ। 407 ପ୍ରମାଣୀକରଣ ଆହ୍ୱାନ ଓ ଅବୈଧ URL ଭିନ୍ନ ବିଫଳତା।
HTTPX ପ୍ରମାଣୀକରଣକୁ ଅଲଗା ରଖିପାରେ
HTTPX ର Proxy ଅବଜେକ୍ଟ ଏଣ୍ଡପଏଣ୍ଟ ଓ ପ୍ରବେଶ ତଥ୍ୟ ଅଲଗା ଆର୍ଗୁମେଣ୍ଟ ଭାବେ ନେଇପାରେ:
import httpx
proxy = httpx.Proxy(
"http://203.0.113.10:8080",
auth=("user@team", "p:a/ss#?"),
)
with httpx.Client(proxy=proxy, trust_env=False, timeout=15) as client:
response = client.get("https://example.com/")
response.raise_for_status()
ଏହା ଦ୍ୱାରା userinfo ଅଂଶ ନିଜେ ତିଆରି କରିବାକୁ ପଡ଼େ ନାହିଁ। ଏହା ପ୍ରବେଶ ତଥ୍ୟକୁ ପ୍ରକ୍ସି ସଂଯୋଗରୁ ସ୍ୱାଧୀନ ଭାବେ ଏନକ୍ରିପ୍ଟ କରେ ନାହିଁ କିମ୍ବା ସବୁ ସେବା ସମର୍ଥିତ ପ୍ରମାଣୀକରଣ ପଦ୍ଧତି ବାଛେ ନାହିଁ।
ମାଗଣା ତାଲିକା କେବଳ IP ଓ ପୋର୍ଟ ଦେଲେ ଏହି ଉଦାହରଣ ଡିଫଲ୍ଟ ପ୍ରବେଶ ତଥ୍ୟ ଦିଏ ନାହିଁ। ପରିଚାଳକ ସତରେ ଆକାଉଣ୍ଟ ଦେଲେ ହିଁ ପ୍ରମାଣୀକରଣ ବ୍ୟବହାର କରନ୍ତୁ। ପ୍ରବେଶ ତଥ୍ୟ ଥିବା URL ସାଧାରଣ ଲଗ୍ ଓ ସୋର୍ସ ଫାଇଲ୍ରେ ରଖନ୍ତୁ ନାହିଁ।