मुझे सरल प्रमाणीकरण और एपीआई स्क्रिप्ट अपलोड करने में समस्या है।पायथन के अनुरोध सही ढंग से कुकीज़ को संभाल नहीं करते हैं?
अधिकृत होने पर, क्लाइंट PHPSESSID कुकी (ब्राउज़र में) सहित कई कुकीज़ प्राप्त करता है।
मैं प्राधिकरण के लिए प्रपत्र डेटा के साथ requests.post
विधि का उपयोग करें:
r = requests.post(url, headers = self.headers, data = formData)
self.cookies = requests.utils.dict_from_cookieja(r.cookies)
हेडर कस्टम User-Agent
के लिए ही किया जाता है।
प्रमाणीकरण 100% ठीक है (पृष्ठ पर एक लॉगआउट लिंक है)। बाद में, मैं अधिकृत सत्र कुकीज़ का उपयोग कर डेटा अपलोड करने की कोशिश:
r = requests.post(url, files = files, data = formData, headers = self.headers, cookies = self.cookies)
लेकिन साइट अनुरोध को खारिज कर दिया। यदि हम स्क्रिप्ट और Google क्रोम (Wireshark का उपयोग करके) के अनुरोधों की तुलना करते हैं, तो अनुरोध निकाय में कोई अंतर नहीं है।
केवल अंतर यह है कि कुकीज़, अनुरोध वर्ग द्वारा भेजे गए गूगल क्रोम भेजता है, जबकि है।
अद्यतन: डबल चेक किया गया, पहला अनुरोध 7 कुकीज़ प्राप्त करता है। पोस्ट विधि केवल आधा अनदेखा करें ...
मुझे 'अनुरोध' के साथ किसी भी कुकी समस्या से अवगत नहीं है, नहीं। क्रोम गुप्त टैब का उपयोग करके, साइट * के पहले अनुरोध पर कितनी कुकीज़ सेट की गई हैं *? साइट उपयोगकर्ता एजेंट या अन्य अनुरोध शीर्षकों के आधार पर व्यवहार को बहुत अच्छी तरह से बदल सकती है। अगला, क्या आप वाकई लॉगिन फॉर्म के साथ एम्बेडेड सीएसआरएफ टोकन का उपयोग नहीं करते हैं? –
अगला, कुकीज़ पर समाप्ति तिथि क्या है? क्या उन कुकीज़ पर विशिष्ट झंडे सेट हैं? जब आप कुकीज़ का प्रबंधन करने के लिए 'request.Session()' ऑब्जेक्ट का उपयोग करते हैं तो क्या होता है? –
@ मार्टिजन पाइटर मेरे बुरे, मैंने गलतियों को हल किया है। मुझे 'सत्र' कक्षा का उपयोग करने, भविष्य के लिए अच्छी सलाह के साथ कोई समय नहीं है! – Croll