चलाते समय अनुरोधों के बीच कनेक्शन बंद न करें मैं एक BASH कमांड लिखने की कोशिश कर रहा हूं जो दो अलग-अलग वेब पृष्ठों पर GET अनुरोध भेजने के लिए कर्ल का उपयोग करता है लेकिन उसी कनेक्शन का उपयोग करता है। मेरे लिए, यह सर्वर पर प्रमाणित करने के लिए लॉगिन पृष्ठ पर एक GET अनुरोध भेजना है और फिर दूसरा अनुरोध वेब पेज पर स्वचालित रीडायरेक्ट की नकल करता है जो वेब ब्राउज़र में हुआ होता है (मेटा रीफ्रेश टैग के माध्यम से)। मुझे अनुरोधों को श्रृंखलाबद्ध करने की आवश्यकता है क्योंकि होम पेज की सामग्री (सर्वर द्वारा जेनरेट की गई) एक अतिथि उपयोगकर्ता के लिए एक अधिकृत उपयोगकर्ता की तुलना में अलग होगी।BASH CURL: क्रमशः
मैं इस आदेश को पहले SOF post से सिफारिश के आधार पर करने की कोशिश की (मान लेते हैं कि चर $IP
और $PORT
पहले से ही मान्य मान के साथ परिभाषित किया गया):
curl -u user:pass ${IP}:${PORT}/login.php && curl ${IP}:${PORT}/index.php
हालांकि, मैं हमेशा कुछ के अंत के बीच हो रहा है जैसे मिल पहला जीईटी और दूसरा की शुरुआत:
* Connection #0 to host 10.0.3.153 left intact
* Closing connection #0
तो एसओएफ पोस्ट गलत था? वैसे भी, इस आदेश कर सफलतापूर्वक कनेक्शन खुला दो अनुरोधों के बीच रखना होगा:
curl -u user:pass ${IP}:${PORT}/login.php ${IP}:${PORT}/index.php
हालांकि, मैं वास्तव में एक समाधान बाद आदेश से पूर्व आदेश के करीब पसंद करेंगे। दूसरे पृष्ठ के विपरीत दूसरे पृष्ठ से आउटपुट को अलग-अलग आउटपुट फ़ाइलों में अलग करने का मुख्य कारण क्यों है। इसलिए मैं कुछ ऐसा करना चाहते हैं:
curl page1.html > output1 && curl page2.html > output2
बेशक, मैं एक ही कनेक्शन का पुन: उपयोग करने की जरूरत है क्योंकि page2.html की सामग्री को मुझ पर निर्भर करता है भी एक ही HTTP सत्र में page1.html के लिए एक अनुरोध कर रही है।
मैं नेटकैट या wget का उपयोग करने वाले समाधानों के लिए भी खुला हूं, लेकिन PHP नहीं!
'&&' के संबंध में: यह केवल दो आदेशों को चलाने के लिए एक बाश नोटेशन है, दूसरे प्रतिबंध के बाद, दूसरा आदेश केवल तभी चलाया जाता है जब पहला सफल होता है। (दूसरे शब्दों में, यदि 'curl -u उपयोगकर्ता: $ {IP} पास करें: $ {PORT}/login.php' एक त्रुटि देता है, तो 'curl $ {IP}: $ {PORT}/index.php' नहीं होगा चलाया जा सकता है।) कनेक्शन को खोलने, या उसके जैसा कुछ भी रखने के साथ इसका कोई संबंध नहीं है। – ruakh