2012-04-04 9 views
11

पर http को रीडायरेक्ट नहीं कर रहा है। मैं वेबपृष्ठों को पार्स करने और उनसे यूआरएल निकालने के लिए हैप्रिकॉट और ओपनुरि का उपयोग कर रहा हूं।ओपन-यूरी http

जब मुझे "http: rapidshare.com" जैसे लिंक मिलते हैं, तो यह https पर रीडायरेक्ट नहीं कर रहा है।

/home/leonidus/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/open-uri.rb:216:in 
`open_loop': redirection forbidden: http:.................=>  
https:......................... 
. 
. 

मैं अपवाद संचालक OPENURI::HTTPREDIRECT का उपयोग करने की कोशिश की लेकिन फिर मैं एक ही त्रुटि हो रही है: यह त्रुटि मुझे मिल गया है। मैंने सभी ब्लॉगों की कोशिश की लेकिन यह भी हल नहीं हुआ है।

+3

https://github.com/jaimeiniesta/open_uri_redirections। एक मणि के रूप में पैक पैच। –

+0

मणि 'open_uri_redirections' मेरे लिए काम किया। Gracias Jaime! –

उत्तर

13

this Ruby bug report देखें कि आप इस समस्या का सामना क्यों कर रहे हैं। "असुरक्षित" रीडायरेक्ट को अनुमति देने के लिए OpenurI को बंदर पैच के लिए this gist देखें।

+0

बग पेपरक्लिप मणि में है। कोई विचार अगर यह किसी भी संस्करण में तय किया गया था? –

+0

"1 साल पहले Yusuke Endoh द्वारा अपडेट किया गया - ट्रैकर बग से फ़ीचर में बदल गया" – ZirconCode

+0

यह एक पुराना उत्तर है, लेकिन यह कहने लायक है: इसका असुरक्षित कारण यह है कि HTTP पर किसी भी और सभी अनुरोधों की संभावना कम है लेकिन अभी भी तकनीकी रूप से संभव है उड़ान में संशोधित होने का मौका। असुरक्षित रीडायरेक्ट को अनुमति देने के लिए पैचिंग कोड एक सुरक्षा समस्या प्रस्तुत करता है, जब सही पाठ्यक्रम https: // हमेशा किसी भी अविश्वसनीय नेटवर्क पर उपयोग करना है और http: // को संदेह और गोपनीयता-न्यून प्रभाव के साथ देखें। – Barry