HTTPX ରେ proxy ଓ mounts ଦେଇ ପ୍ରକ୍ସି ପଥ ବାଛିବା
HTTPX ର proxy ଓ transport mounts ସଠିକ୍ ସ୍କିମ୍, ସ୍ପଷ୍ଟ ପରିବେଶ ଆଚରଣ ଏବଂ ଅଲଗା ସଂଯୋଗ ଓ ପଢ଼ିବା ସମୟସୀମା ସହ ବ୍ୟବହାର କରନ୍ତୁ।
ଗୋଟିଏ ଏଣ୍ଡପଏଣ୍ଟ କ୍ଲାଏଣ୍ଟର ଅନୁରୋଧ ସମ୍ଭାଳିବାକୁ ହେଲେ proxy= ବ୍ୟବହାର କରନ୍ତୁ। ଗନ୍ତବ୍ୟ ସ୍କିମ୍ ପାଇଁ ଭିନ୍ନ ପଥ ଦରକାର ହେଲେ mounts= ବ୍ୟବହାର କରନ୍ତୁ। ଉଦାହରଣ ଏହି HTTPX ଇଣ୍ଟରଫେସ୍ ବ୍ୟବହାର କରେ; ପୁରୁଣା proxies= API ଥିବା ପ୍ରକଳ୍ପକୁ ସେହି ସଂସ୍କରଣର ବିନ୍ୟାସ ଦରକାର।
ଗୋଟିଏ ଏଣ୍ଡପଏଣ୍ଟ
import httpx
timeout = httpx.Timeout(15.0, connect=5.0)
with httpx.Client(
proxy="http://127.0.0.1:8080",
trust_env=False,
timeout=timeout,
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
ସ୍ଥାନୀୟ ଲିସେନର୍ ବଦଳରେ ଚାଲୁଥିବା HTTP ପ୍ରକ୍ସି ଦିଅନ୍ତୁ। HTTP ପ୍ରକ୍ସି ତାଲିକାର ବିକଳ୍ପ ମଧ୍ୟ ନିଜ ଗନ୍ତବ୍ୟ ସହ ଯାଞ୍ଚ କରିବାକୁ ହେବ। HTTPS ଲକ୍ଷ୍ୟ CONNECT ଦେଇ ଏହି http:// ଏଣ୍ଡପଏଣ୍ଟ ବ୍ୟବହାର କରିପାରେ। ସ୍କିମ୍ https:// କଲେ ପ୍ରକ୍ସି ପର୍ଯ୍ୟନ୍ତ TLS ମଗାଯାଏ, ଯାହାକୁ ଲିସେନର୍ ଓ କ୍ଲାଏଣ୍ଟ ଉଭୟ ସମର୍ଥନ କରିବା ଦରକାର।
ଗନ୍ତବ୍ୟ ସ୍କିମ୍ ଅନୁସାରେ ଅଲଗା ପଥ
import httpx
mounts = {
"http://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8080",
trust_env=False,
),
"https://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8081",
trust_env=False,
),
}
with httpx.Client(
mounts=mounts,
trust_env=False,
timeout=httpx.Timeout(15.0, connect=5.0),
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Mount କୀ ଲକ୍ଷ୍ୟ URL ସହ ମେଳ ଖାଏ। ଏଠାରେ HTTP ଲକ୍ଷ୍ୟ ପୋର୍ଟ 8080 ଓ HTTPS ଲକ୍ଷ୍ୟ 8081 ବାଛେ। ପ୍ରକ୍ସିର ମୂଲ୍ୟ ଲିସେନର୍ର ନିଜ ପ୍ରୋଟୋକଲ୍ ବୁଝାଏ, ତେଣୁ HTTPS mount ରେ http:// ପ୍ରକ୍ସି ରହିବା ଠିକ୍। ନିଜ ଏଣ୍ଡପଏଣ୍ଟ ଦେଇ ଦୁଇ ଗନ୍ତବ୍ୟ ସ୍କିମ୍ ଯାଞ୍ଚ କରନ୍ତୁ।
ଉଭୟ ପଦ୍ଧତି କ୍ଲାଏଣ୍ଟରେ ଓ ଦିଆଯାଇଥିବା transport ରେ trust_env=False ସେଟ୍ କରେ। ନହେଲେ HTTPX ଡିଫଲ୍ଟ ଭାବେ ପ୍ରକ୍ସି ଓ ସାର୍ଟିଫିକେଟ୍ର ପରିବେଶ ଚଳକ ପଢ଼େ। ନିୟୋଜନ ସେଗୁଡ଼ିକ ଉପରେ ନିର୍ଭର କଲେ ଚିହ୍ନଟ ସକ୍ରିୟ ରଖନ୍ତୁ କିମ୍ବା ଆବଶ୍ୟକ ପଥ ଓ ବିଶ୍ୱାସ ସ୍ପଷ୍ଟ ସେଟ୍ କରନ୍ତୁ। ବ୍ୟକ୍ତିଗତ ବିଶ୍ୱାସ ପାଇଁ ନିଜ HTTPX ସଂସ୍କରଣର ସମର୍ଥିତ TLS context ଓ CA ବିନ୍ୟାସ ନିଅନ୍ତୁ; ଗନ୍ତବ୍ୟ ଯାଞ୍ଚ ସକ୍ରିୟ ରଖନ୍ତୁ। HTTPS ପ୍ରକ୍ସିର ବିଶ୍ୱାସ ଗନ୍ତବ୍ୟର ବିଶ୍ୱାସରୁ ଅଲଗା ହୋଇପାରେ।
httpx.Timeout(15.0, connect=5.0) ସଂଯୋଗ ସମୟସୀମା ବଦଳାଇ ଅନ୍ୟ ବିନ୍ୟାସିତ ଅଂଶକୁ ଡିଫଲ୍ଟ ମୂଲ୍ୟ ଦିଏ। ପଢ଼ିବା, ଲେଖିବା ଓ pool ଅପେକ୍ଷାର ଅଲଗା ସୀମା ଅଛି; ପନ୍ଦର ସେକେଣ୍ଡ ମୋଟ ବିତିଥିବା ସମୟର ଶେଷସୀମା ନୁହେଁ। Pool timeout ଅନ୍ୟ କାମ ଉପଲବ୍ଧ ସଂଯୋଗ ଧରିରଖିଥିବା ମଧ୍ୟ ବୁଝାଇପାରେ। ପ୍ରକ୍ସି ପହଞ୍ଚିହେଉନାହିଁ ବୋଲି ଧରିବା ପୂର୍ବରୁ କ୍ଲାଏଣ୍ଟ ଓ streaming ପ୍ରତିକ୍ରିୟା ଠିକ୍ ଭାବେ ବନ୍ଦ କରନ୍ତୁ।