2013-08-14 6 views
5

सुनिश्चित नहीं हैं कि मैं क्यों मशीनीकरण मणि के साथ अब इस त्रुटि हो रही है - अब थोड़ी देर के लिए उपयोग किया गया कोई मुद्दों के साथ।रूबी मशीनीकरण Zlib :: BufError

मेरे स्क्रिप्ट बेतरतीब ढंग से रोकने के लिए और निम्न त्रुटि फेंक देगा:

/Users/username/.rvm/gems/ruby-1.9.3-p194/gems/mechanize-2.5.1/lib/mechanize/http/agent.rb:798:in `rescue in response_content_encoding': error handling content-encoding gzip: buffer error (Zlib::BufError) (Mechanize::Error) 

कोई भी विचार?

+2

मुझे लगता है कि हम जानते हैं कि जहां आप अपना डेटा प्राप्त कर रहे हैं, इसलिए हमें एक URL देने के लिए की जरूरत है। हमें उस कोड को देखने की भी आवश्यकता है जो उस अनुरोध को संभालती है। –

उत्तर

5

यह है कि आप एक यूआरएल है कि एक लोड संतुलन के लिए अंक कम पड़ रहा है संभव है। कि लोड संतुलन के पीछे मेजबानों में से एक गलत कॉन्फ़िगर किया गया है, या शायद यह कॉन्फ़िगर किया गया है अलग ढंग से साथियों इसकी तुलना में, और सामग्री है, जहां दूसरों को नहीं की Gzipped संस्करण लौटा रहा है। मैंने अतीत में उस समस्या को देखा है।

मैंने उन स्थितियों को भी देखा है जहां सर्वर ने कहा यह gzipped सामग्री लौटा रहा था, लेकिन इसे असंपीड़ित भेजा। या यह zipped भेज सकता है, gzipped नहीं। संयोजन कई हैं।

ठीक सुनिश्चित करें कि आपके कोड संवेदन लौटे सामग्री संकुचित है कि क्या करने में सक्षम है हो रहा है। सुनिश्चित करें कि आप अपने कोड के लिए अपने सर्वर पर भी सही स्वीकार्य-सामग्री HTTP शीर्षलेख भेज रहे हैं। आप रक्षा कार्यक्रम और वास्तविक सामग्री आप वापस पाने को देखो, और फिर सही विसंपीड़न करने के लिए शाखा, तो उस पार्स करने के लिए पर पारित किया है।

+0

यह सहायक है - धन्यवाद। मैं मूल रूप से एक बोट/क्रॉलर है कि एक साइट पर एक सत्र बनाता है, और उपयोगकर्ता के प्रवेश की ओर से कुछ कार्रवाई करता है बना रहा हूं। मेरे अधिकांश अनुरोध मैकेनाइजेशन का उपयोग कर पोस्ट हैं, लेकिन ऐसा लगता है कि त्रुटि जीईटी अनुरोधों में से एक के साथ है। शायद मैं हेडर्स को स्पष्ट रूप से 'ए.जेट' का उपयोग करने के विरोध में घोषित कर दूंगा और देखें कि यह कैसा चल रहा है। – abhir

+0

आपको हेडर को परिभाषित करने की आवश्यकता है। उनके बिना आप उस प्रणाली के डेवलपर्स की तरह हैं। उनके साथ, ठीक है, कम से कम आपने सही काम किया है। –

+0

बिल्कुल सही - इसे हल किया गया। धन्यवाद! – abhir

4

मैं निम्नलिखित की तरह अनुरोध हेडर सेट करके ऐसा आसपास प्राप्त करने में सक्षम था:

mechanize.request_headers = { "Accept-Encoding" => "" }

+1

यह मेरे लिए भी तय है, हालांकि मुझे नहीं पता कि क्यों –

संबंधित मुद्दे