मैं एक पायथन एप्लिकेशन लिख रहा हूं जो curl के माध्यम से सोशल मीडिया एपीआई से पूछताछ करता है।कर्ल वापस "अतिरिक्त सामान ठीक नहीं है" क्यों लौट रहा है?
अतिरिक्त सामान नहीं ठीक transfer.c: 1037: 0 0
असामान्य बात है अलग सर्वर मैं क्वेरी (गूगल +, रेडिट, ट्विटर, फेसबुक, अन्य) के अधिकांश cURL शिकायत है जब एप्लिकेशन पहली बार शुरू होता है, तो प्रत्येक सेवा की प्रतिक्रिया इस पंक्ति को एक या दो बार फेंक देगी। कुछ मिनटों के बाद, लाइन कई बार दिखाई देगी। स्पष्ट रूप से curl कुछ ऐसी पहचान कर रहा है जिसे वह पसंद नहीं करता है। लगभग आधे घंटे के बाद, सर्वर समय समाप्त हो जाते हैं और इस लाइन को कई बार दोहराया जाता है, इसलिए यह एक वास्तविक समस्या दिखा रहा है।
मैं इसका निदान कैसे कर सकता हूं? मैंने वायरसहार्क का उपयोग करने के लिए अनुरोध और प्रतिक्रिया शीर्षकों को उन विसंगतियों की खोज करने के लिए प्रयास किया जो कर्ल को शिकायत कर सकती हैं, लेकिन सभी वायरसहार्क की जटिलता के लिए केवल हेडर को अलग करने और प्रदर्शित करने का एक तरीका प्रतीत नहीं होता है।
यहाँ कोड के प्रासंगिक हिस्सा है:
output = cStringIO.StringIO()
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0')
c.setopt(c.WRITEFUNCTION, output.write)
c.setopt(c.CONNECTTIMEOUT, 10)
c.setopt(c.TIMEOUT, 15)
c.setopt(c.FAILONERROR, True)
c.setopt(c.NOSIGNAL, 1)
try:
c.perform()
toReturn = output.getvalue()
output.close()
return toReturn
except pycurl.error, error:
errno, errstr = error
print 'The following cURL error occurred: ', errstr
क्या आप वाकई कुछ ऐसा करते हैं जो वे वास्तव में शीर्षकों में लौट रहे हैं, नहीं, कहें, एक चेतावनी है कि कर्ल सिर्फ 'stderr' या' syslog' पर प्रिंट कर रहा है या जो भी आप के बीच हेडर लॉगिंग कर रहा है? (विशेष रूप से ट्रांसफर सी। फाइल है, इसलिए मैं इस तरह से कुछ कर्लिंग लॉगिंग देखने की उम्मीद करता हूं ...) आपको हमें उस वास्तविक कोड को दिखाने की आवश्यकता हो सकती है जिसका आप उपयोग कर रहे हैं, और हमें libcurl के संस्करण और जो भी पाइथन रैपर आप बताते हैं, फिर से उपयोग कर रहे हैं। – abarnert
धन्यवाद abarnert। एक लाइन '*' से शुरू होती है और नहीं '<'मैंने यह भी सोचा था कि वे हेडर का हिस्सा नहीं थे। मैंने सवाल अपडेट किया। – dotancohen
मुझे लगता है कि आप इस पर पहले ही स्पष्ट हैं, और सिर्फ पूरे प्रश्न को अपडेट नहीं किया है, लेकिन सिर्फ मामले में: कारण यह है कि आप वायरसहार्क में इस संदेश को अलग नहीं कर सकते हैं कि यह तार पर कभी नहीं चला जाता है; यह सिर्फ स्थानीय रूप से मुद्रित है। – abarnert