მოთხოვნამ შეიძლება session.get()-ით იმუშაოს და PreparedRequest-ად გადაკეთების შემდეგ სერტიფიკატის შემოწმებაზე ჩავარდეს. დაბალი დონის send გზა არ ასრულებს იმავე გარემოს შერწყმას, რასაც ჩვეულებრივი request მეთოდი.

import requests

with requests.Session() as session:
    request = requests.Request("GET", "https://example.com/")
    prepared = session.prepare_request(request)

    settings = session.merge_environment_settings(
        prepared.url, {}, None, None, None
    )
    response = session.send(
        prepared,
        timeout=(5, 15),
        **settings,
    )
    response.raise_for_status()
    print(response.status_code)

შეაერთეთ საბოლოო მომზადებული URL-ით, ყველა განზრახული URL ცვლილების შემდეგ. პროქსისა და შემოვლის გადაწყვეტილებები დანიშნულებაზეა დამოკიდებული; ადრინდელი URL-ის პარამეტრები რეალურად გაგზავნილი მოთხოვნისთვის შეიძლება არასწორი იყოს.

CA პარამეტრი ადვილად გამოგრჩებათ

გარემოსადმი ჩვეულებრივი ნდობის ჩართვისას შერწყმა ითვალისწინებს REQUESTS_CA_BUNDLE-სა და მის სარეზერვო CURL_CA_BUNDLE-ს, თუ შემოწმება ცალსახად გადაფარული არ არის. send-ის პირდაპირ ნაგულისხმევი verify-ით გამოძახება CA-ის ამ ძიებას არ აკეთებს. შემოწმების გამორთვა სხვაობას მალავს, განკუთვნილი სერტიფიკატების საცავის მიწოდების ნაცვლად.

Session.prepare_request() სესიის მომზადების ქცევასაც იყენებს. მოთხოვნის პირდაპირ Request.prepare()-ით შექმნა ცალკე არჩევანია; სესიის ქუქიების ან სხვა მომზადების ავტომატურ გამოყენებას ნუ ელით.

პროქსისთვის წესი უფრო კონკრეტულია

არაზუსტი იქნებოდა თქმა, რომ ყველა PreparedRequest პროქსის გარემოს ცვლადებს უგულებელყოფს. Requests 2.34.2-ში send ნაგულისხმევ პროქსებს ადგენს, როცა proxies სახელდებული არგუმენტი აკლია. send-ისთვის proxies={} მიცემა სწორედ ამ განსაზღვრის განშტოებას ტოვებს.

merge_environment_settings-ისთვის მიცემულ ცარიელ ლექსიკონს სხვა როლი აქვს: შერწყმამ შეიძლება გარემოს შესაბამისი გზებით შეავსოს send-ზე გადაცემამდე. ორ ფრაგმენტში მარტო ცარიელი ლექსიკონის დანახვა სხვადასხვა მიმღებ მეთოდს ყურადღების მიღმა ტოვებს.

მორგებულ მოთხოვნის აგების კოდში მომზადება, გარემოს შერწყმა და გაგზავნა ერთად შეინარჩუნეთ. როცა აპლიკაცია განზრახ trust_env=False-ს იყენებს, შერწყმა ამ პოლიტიკას პატივს სცემს და გარემოს პარამეტრებს არ ახვევს კლიენტს, რომელმაც ისინი შეგნებულად გამორთო.

დაკავშირებული სტატიები