Python Requests: ცალკეული Basic შესვლები პროქსისა და საიტისთვის
პროქსის Basic შესვლა გადაეცით მისი URL-ით, ხოლო დანიშნულების საიტის Basic შესვლა — Requests-ის auth არგუმენტით.
ოფისის პროქსი ერთ ანგარიშს ითხოვს. მის უკან მდგარი საიტი სხვას ითხოვს. Requests-ს აქვს ცალკეული შესავალი ამ ორი Basic შესვლისთვის: მონაცემები პროქსის URL-ში და მოთხოვნის auth არგუმენტი.
from urllib.parse import quote
import requests
proxy_url = (
f"http://{quote(proxy_user, safe='')}:"
f"{quote(proxy_password, safe='')}@proxy.example:8080"
)
response = requests.get(
"https://reports.example/private/",
proxies={"https": proxy_url},
auth=(site_user, site_password),
timeout=(5, 20),
)
response.raise_for_status()
ანგარიშის ოთხი ცვლადი აპლიკაციის მონაცემთა კონფიგურაციიდან მოდის. პროქსის მომხმარებლის სახელისა და პაროლის ცალ-ცალკე კოდირება ინახავს ისეთ ნიშნებს, როგორიცაა at, URL-ის გამყოფებად გადაქცევის გარეშე.
ლექსიკონის https გასაღები ირჩევს ამ გზას HTTPS დანიშნულებისთვის. მისი მნიშვნელობა კვლავ http://-ით იწყება, რადგან ეს არის ის პროტოკოლი, რომლითაც ამ მაგალითის პროქსის აღწევენ.
ამ HTTPS მოთხოვნისთვის პროქსის შესვლა CONNECT გაცვლას ეკუთვნის. საიტის შესვლა კი დამყარებულ გვირაბში გამავალ მომდევნო მოთხოვნას ეკუთვნის. როცა ადაპტერი პროქსის ავტორიზაციას საკუთარი URL-იდან გამოიტანს, ის შესაბამის ნაბიჯზე რჩება; ამ Basic შემთხვევისთვის კომბინირებული აუთენტიფიკაციის კლასი არ არის საჭირო.
407 შუამავლის გამოწვევას აღნიშნავს. საიტიდან მიღებული 401 დანიშნულების გამოწვევას აღნიშნავს. გამოიყენეთ ეს პასუხი იმის გადასაწყვეტად, ორი კონფიგურირებული ანგარიშიდან რომელს სჭირდება ყურადღება.