मैं सिनात्रा एप्लिकेशन के माध्यम से दूरस्थ फ़ाइलों को प्रॉक्सी करना चाहता हूं। इसके लिए एक रिमोट स्रोत से क्लाइंट को हेडर के साथ HTTP प्रतिक्रिया स्ट्रीमिंग की आवश्यकता होती है, लेकिन Net::HTTP#get_response
द्वारा प्रदान किए गए ब्लॉक के अंदर स्ट्रीमिंग एपीआई का उपयोग करते समय प्रतिक्रिया के शीर्षकों को सेट करने का तरीका पता नहीं लगा सकता है।हेडर के साथ सिनात्रा स्ट्रीमिंग प्रतिक्रिया
उदाहरण के लिए, इस प्रतिक्रिया हेडर सेट हो जाएगा नहीं:
get '/file' do
stream do |out|
uri = URI("http://manuals.info.apple.com/en/ipad_user_guide.pdf")
Net::HTTP.get_response(uri) do |file|
headers 'Content-Type' => file.header['Content-Type']
file.read_body { |chunk| out << chunk }
end
end
end
और इस त्रुटि में परिणाम है: Net::HTTPOK#read_body called twice (IOError)
:
get '/file' do
response = nil
uri = URI("http://manuals.info.apple.com/en/ipad_user_guide.pdf")
Net::HTTP.get_response(uri) do |file|
headers 'Content-Type' => file.header['Content-Type']
response = stream do |out|
file.read_body { |chunk| out << chunk }
end
end
response
end