Requests PreparedRequest ಮತ್ತು ಕಾಣೆಯಾದ ಪರಿಸರ ಸೆಟ್ಟಿಂಗ್ಗಳು
ಪ್ರತಿ ಕೆಳಮಟ್ಟದ send ಪ್ರಾಕ್ಸಿ ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ ಎಂದು ಭಾವಿಸದೆ, ಸ್ವಂತ ಸಿದ್ಧ ವಿನಂತಿಗಳನ್ನು Requestsನ ಸಾಮಾನ್ಯ ಪ್ರಾಕ್ಸಿ ಮತ್ತು CA ನಿರ್ವಹಣೆಗೆ ಹೊಂದಿಸಿ.
ವಿನಂತಿ 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 ನೋಡುತ್ತದೆ. ಮೂಲ verify ಜೊತೆ ನೇರ send ಈ CA ಹುಡುಕಾಟ ಮಾಡುವುದಿಲ್ಲ. ಪರಿಶೀಲನೆ ಆಫ್ ಮಾಡುವುದು ಬೇಕಾದ ಪ್ರಮಾಣಪತ್ರ ಸಂಗ್ರಹ ಕೊಡುವ ಬದಲು ವ್ಯತ್ಯಾಸ ಮರೆಮಾಡುತ್ತದೆ.
Session.prepare_request() ಅಧಿವೇಶನ ಸಿದ್ಧತಾ ವರ್ತನೆಯನ್ನೂ ಅನ್ವಯಿಸುತ್ತದೆ. ನೇರ Request.prepare() ಮೂಲಕ ವಿನಂತಿ ರಚಿಸುವುದು ಬೇರೆ ಆಯ್ಕೆ; ಅಧಿವೇಶನ ಕುಕಿಗಳು ಅಥವಾ ಇತರ ಸಿದ್ಧತೆ ಸ್ವಯಂ ಅನ್ವಯಿಸುತ್ತದೆ ಎಂದು ನಿರೀಕ್ಷಿಸಬೇಡಿ.
ಪ್ರಾಕ್ಸಿಗೆ ಹೆಚ್ಚು ನಿರ್ದಿಷ್ಟ ನಿಯಮವಿದೆ
ಪ್ರತಿ PreparedRequest ಪ್ರಾಕ್ಸಿ ಪರಿಸರ ಚರ ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ ಎನ್ನುವುದು ಸರಿಯಲ್ಲ. Requests 2.34.2ನಲ್ಲಿ proxies ಹೆಸರಿನ ಆರ್ಗ್ಯುಮೆಂಟ್ ಇಲ್ಲದಿದ್ದಾಗ send ಮೂಲ ಪ್ರಾಕ್ಸಿಗಳನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. sendಗೆ proxies={} ಕೊಟ್ಟರೆ ಆ ನಿರ್ದಿಷ್ಟ ಮೂಲ ನಿರ್ಧಾರ ಶಾಖೆ ತಪ್ಪುತ್ತದೆ.
merge_environment_settingsಗೆ ಕೊಟ್ಟ ಖಾಲಿ ಡಿಕ್ಷನರಿಯ ಪಾತ್ರ ಬೇರೆ: sendಗೆ ಕೊಡುವ ಮೊದಲು ವಿಲೀನ ಅದನ್ನು ಅನ್ವಯಿಸುವ ಪರಿಸರ ಮಾರ್ಗಗಳಿಂದ ತುಂಬಬಹುದು. ಎರಡು ಕೋಡ್ಗಳಲ್ಲಿ ಖಾಲಿ ಡಿಕ್ಷನರಿ ಮಾತ್ರ ನೋಡಿದರೆ ಸ್ವೀಕರಿಸುವ ವಿಭಿನ್ನ ವಿಧಾನಗಳು ತಪ್ಪಿಹೋಗುತ್ತವೆ.
ಸ್ವಂತ ವಿನಂತಿ ಕಟ್ಟುವ ಕೋಡ್ನಲ್ಲಿ ಸಿದ್ಧತೆ, ಪರಿಸರ ವಿಲೀನ ಮತ್ತು ಕಳುಹಿಸುವಿಕೆ ಒಟ್ಟಿಗೆ ಇಡಿ. ಅಪ್ಲಿಕೇಶನ್ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ trust_env=False ಬಳಸಿದರೆ ವಿಲೀನ ಆ ನೀತಿ ಗೌರವಿಸುತ್ತದೆ; ಪರಿಸರವನ್ನು ತಿಳಿದು ಆಫ್ ಮಾಡಿದ ಕ್ಲೈಂಟ್ಗೆ ಸೆಟ್ಟಿಂಗ್ ಬಲವಂತ ಮಾಡುವುದಿಲ್ಲ.