जब curl की जाँच में HTTP स्टेटस के लिए 000 दिखता है, तो उसे बताने के लिए कोई अंतिम HTTP रिस्पॉन्स कोड नहीं मिला है। वेबसाइट ने वास्तव में 000 नाम का कोई HTTP स्टेटस नहीं भेजा।

त्रुटि भी दर्ज करें

POSIX शेल का यह उदाहरण अंतिम HTTP फ़ील्ड, CONNECT फ़ील्ड और curl प्रोसेस का एग्ज़िट कोड प्रिंट करता है:

curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect}\n' https://example.com/
result=$?
printf 'curl_exit=%s\n' "$result"

उदाहरण के एंडपॉइंट की जगह अपना HTTP प्रॉक्सी या HTTP प्रॉक्सी सूची से कोई संभावित विकल्प रखें। show-error चालू रखें: त्रुटि संदेश अक्सर सबसे काम की जानकारी होता है। CONNECT फ़ील्ड टनल इस्तेमाल होने पर प्रासंगिक है; यह वेबसाइट का दूसरा अंतिम स्टेटस नहीं है।

मानों को एक साथ पढ़ें

  • प्रॉक्सी से कनेक्शन विफल होने पर HTTP फ़ील्ड 000 रह सकता है।
  • रिस्पॉन्स मिलने से पहले टाइमआउट होने पर भी ऐसा हो सकता है।
  • CONNECT रिस्पॉन्स सफल होने के बाद TLS विफलता आए, तो connect=200 और http=000 दिख सकता है।
  • वेबसाइट का पूरा रिस्पॉन्स, जैसे 403, अलग मामला है: जाँचने के लिए वास्तविक HTTP रिस्पॉन्स मौजूद है।

सटीक एग्ज़िट कोड और संदेश संभावित कारणों को सीमित करते हैं। देखें कि विफलता प्रॉक्सी खोजने, उसके पोर्ट से जुड़ने, टनल की बातचीत या गंतव्य के सत्यापन के दौरान हुई।

हर नतीजे को केवल स्टेटस जाँच तक सीमित न करें

सिर्फ http_code सहेजने वाली स्क्रिप्ट ट्रांसपोर्ट त्रुटि खो देती है। प्रोसेस का नतीजा और संवेदनशील जानकारी हटाया हुआ त्रुटि संदेश भी सहेजें। दूसरी ओर, उपयुक्त fail विकल्प के बिना वेबसाइट के त्रुटि स्टेटस लौटाने पर भी curl ट्रांसफ़र सफलतापूर्वक पूरा कर सकता है। HTTP रिस्पॉन्स और क्लाइंट के चलने का नतीजा अलग-अलग सवालों के जवाब देते हैं।

TLS सत्यापन बंद करके या कोई मनमाना हेडर जोड़कर 000 ठीक करने की कोशिश न करें। पहले पता लगाएँ कि कौन-सा काम अंतिम रिस्पॉन्स तक नहीं पहुँचा।

संबंधित लेख