क्या कमांड लाइन cURL के साथ पुनर्निर्देश का पालन करने का एक तरीका है?


456

मुझे पता है कि एक php स्क्रिप्ट में:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

पुनर्निर्देश का पालन करेगा। क्या कमांड लाइन cURL के साथ पुनर्निर्देश का पालन करने का एक तरीका है?

जवाबों:


761

स्थान हेडर फ़्लैग का उपयोग करें:

curl -L <URL>


1
यह स्प्रेडशीट तक पहुँचने के लिए Google के साथ प्रमाणीकरण करने के साथ काम नहीं करता है। : /
फतुहोकू

13
man curl: "जब प्रमाणीकरण का उपयोग किया जाता है, तो कर्ल केवल प्रारंभिक मेजबान को अपनी साख भेजता है। <...> यह भी देखें - यह कैसे बदलना है, इस पर भरोसा किया गया।"
हुडोलेजेव

25

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मैं अपना समाधान यहां पोस्ट कर रहा हूं क्योंकि मेरा मानना ​​है कि यह टिप्पणीकारों में से एक की मदद कर सकता है।

मेरे लिए, बाधा यह थी कि पृष्ठ को लॉगिन की आवश्यकता थी और फिर मुझे जावास्क्रिप्ट के माध्यम से एक नया 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>


15

जैसा कि कहा गया है, पुनर्निर्देश का पालन करने के लिए आप ध्वज का उपयोग कर सकते हैं -Lया --location:

curl -L http://www.example.com

लेकिन, यदि आप पुनर्निर्देश की संख्या को सीमित करना चाहते हैं , तो पैरामीटर जोड़ें--max-redirs

--max-redirs <num>

अधिकतम पुनर्निर्देशन की अधिकतम संख्या निर्धारित करें। यदि -L, --locationउपयोग किया जाता है, तो इस विकल्प का उपयोग कर्ल को "अनुपस्थित" में पुनर्निर्देशन से रोकने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से, सीमा 50 पुनर्निर्देशन पर सेट है। इसे असीम बनाने के लिए इस विकल्प को -1 पर सेट करें। यदि यह विकल्प कई बार उपयोग किया जाता है, तो पिछले एक का उपयोग किया जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.