जवाबों:
स्थान हेडर फ़्लैग का उपयोग करें:
curl -L <URL>
man curl: "जब प्रमाणीकरण का उपयोग किया जाता है, तो कर्ल केवल प्रारंभिक मेजबान को अपनी साख भेजता है। <...> यह भी देखें - यह कैसे बदलना है, इस पर भरोसा किया गया।"
मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मैं अपना समाधान यहां पोस्ट कर रहा हूं क्योंकि मेरा मानना है कि यह टिप्पणीकारों में से एक की मदद कर सकता है।
मेरे लिए, बाधा यह थी कि पृष्ठ को लॉगिन की आवश्यकता थी और फिर मुझे जावास्क्रिप्ट के माध्यम से एक नया URL दिया। यहाँ मुझे क्या करना है:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
ध्यान दें कि j_username और j_password मेरी वेबसाइट के लॉगिन फ़ॉर्म के लिए फ़ील्ड का नाम है। आपको यह देखने के लिए वेबपृष्ठ का स्रोत खोलना होगा कि उपयोगकर्ता नाम फ़ील्ड का the नाम ’और पासवर्ड फ़ील्ड का 'नाम’ आपके मामले में क्या है। उसके बाद मैं जावा स्क्रिप्ट के साथ एक html फ़ाइल जाता हूं जिसमें नया URL एम्बेडेड था। इसे बाहर पार्स करने के बाद बस नए URL के साथ फिर से सबमिट करें:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
जैसा कि कहा गया है, पुनर्निर्देश का पालन करने के लिए आप ध्वज का उपयोग कर सकते हैं -Lया --location:
curl -L http://www.example.com
लेकिन, यदि आप पुनर्निर्देश की संख्या को सीमित करना चाहते हैं , तो पैरामीटर जोड़ें--max-redirs
--max-redirs <num>अधिकतम पुनर्निर्देशन की अधिकतम संख्या निर्धारित करें। यदि
-L,--locationउपयोग किया जाता है, तो इस विकल्प का उपयोग कर्ल को "अनुपस्थित" में पुनर्निर्देशन से रोकने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से, सीमा 50 पुनर्निर्देशन पर सेट है। इसे असीम बनाने के लिए इस विकल्प को -1 पर सेट करें। यदि यह विकल्प कई बार उपयोग किया जाता है, तो पिछले एक का उपयोग किया जाएगा।