मैं एक यूआरएल क्रॉल करने के लिए रूबी के साथ नेट :: HTTP का उपयोग कर रहा हूं।रूबी नेट :: HTTP शीर्षलेख पढ़ें शरीर से पहले (बिना अनुरोध के)?
मैं ऑडियो स्ट्रीमिंग क्रॉल करने के लिए इस तरह के रूप नहीं करना चाहती: दोनों अभी http://listen2.openstream.co/334
वास्तव मेंमैं केवल Html सामग्री, इसलिए कोई pdf, वीडियो, txt क्रॉल करना चाहते हैं ..
, मेरे पास है open_timeout और read_timeout 10 पर सेट है, इसलिए यदि मैं इन स्ट्रीमिंग ऑडियो पृष्ठों को क्रॉल करता हूं तो भी वे टाइमआउट करेंगे।
url = 'http://listen2.openstream.co/334'
path = uri.path
req= Net::HTTP::Get.new(path, {'Accept' => '*/*', 'Content-Type' => 'text/plain; charset=utf-8', 'Connection' => 'keep-alive','Accept-Encoding' => 'Identity'})
uri = Addressable::URI.parse(url)
resp = Net::HTTP.start(uri.host, uri.inferred_port) do |httpRequest|
httpRequest.open_timeout = 10
httpRequest.read_timeout = 10
#how can I read the headers here before it's streaming the body and then exit b/c the content type is audio?
httpRequest.request(req)
end
हालांकि, वहाँ हेडर की जाँच करने के लिए इससे पहले कि मैं एक http प्रतिक्रिया के शरीर को पढ़ने अगर यह एक ऑडियो है देखने के लिए एक तरीका है? मैं एक अलग हेड अनुरोध भेजने के बिना ऐसा करना चाहता हूं।
क्या मैं पूछ सकता हूं कि 'हेड' अनुरोध के साथ क्या गलत है जिसका आविष्कार इस सटीक मुद्दे को हल करने के लिए किया गया था? – mudasobwa
आप 'स्वीकार करें' शीर्षलेख को 'टेक्स्ट/एचटीएमएल' पर सेट करने का भी प्रयास कर सकते हैं। अगर यूआरएल की सामग्री एचटीएमएल में प्रस्तुत नहीं है तो अच्छी तरह से व्यवहार किए गए सर्वरों को तुरंत HTTP 406 प्रतिक्रिया वापस करनी चाहिए। –