2014-04-15 7 views
6

मैं json प्रपत्र यूआरएल पाने के लिए कोशिश कर रहा हूँ के साथ:EOFError पर रूबी में (फ़ाइल के अंत तक पहुँच) http.request

uri = URI.parse("http://84.38.185.251:9262/send") 

http = Net::HTTP.new(uri.host, uri.port) 
request = Net::HTTP::Get.new(uri.request_uri) 

response = http.request(request) 

response.code    # => 301 
response.body    # => The body (HTML, XML, blob, whatever) 
response["cache-control"] # => public, max-age=2592000 
puts response.body 

लेकिन मैं कोई त्रुटि मिलती है: `EOFError (फ़ाइल के अंत तक पहुँच): एप्लिकेशन/नियंत्रक/sensors_controller.rb: 35: sensinfo में '

sensors_controller.rb: 35:

response = http.request(request) 

क्या मैं गलत किया है?

उत्तर

0

के बारे में अधिक प्राप्त कर सकते हैं;

require 'typhoeus' 

response = Typhoeus.get("http://84.38.185.251:9262/send") 
p response.body 
#=> {"ids":"-1","data":{"temp":"nan","h":"-1"},"status":"255","voltage":"-1"} 
+0

क्या इसे अन्य रत्नों की आवश्यकता है? यह मुझे एक त्रुटि 'आवश्यकता' देता है: लोड करने के लिए ऐसी कोई फ़ाइल नहीं - टाइफियस (लोडरर) लेकिन मैंने इसे मणि सूची में शामिल किया है और बनाया बंडल इंस्टॉल – EgorkZe

+0

नहीं, ऐसा नहीं है, इसे 'गेमफाइल ' – mdesantis

+0

संख्या के अंदर' मणि 'टाइफोयस' के साथ ठीक काम करना चाहिए ((यह काम नहीं करता है (( – EgorkZe

11

यदि यह https तो

है इस त्रुटि ज्यादातर https का उपयोग कर

के लिए प्राप्त करने का प्रयास करें यह एक

uri = URI.parse("https://84.38.185.251:9262/send") 
http = Net::HTTP.new(uri.host, uri.port) 
request = Net::HTTP::Get.new(uri.request_uri) 
http.use_ssl = true 
response = http.request(request) 

नोट aditional

http.use_ssl = true 

यदि यह https

नहीं है
http.use_ssl = false 

या आप हालत

http.use_ssl = true if domain =~ /^https/ 
जोड़ सकते हैं

आप मुझे लगता है कि यह एक बग के कुछ प्रकार है इस http://expressica.com/2012/02/10/eoferror-end-of-file-reached-issue-when-post-a-form-with-nethttp/

+0

नहीं (मैं कोशिश की, लेकिन यह मुझे यह त्रुटि फिर – EgorkZe

+0

दिखाने मैं http.use_ssl सच और एक स्पष्ट 'https: //' पर सेट है: - मेरे कोड पर है (स्वयं देखें typhoeus काम करने के लिए लगता है https://github.com/betesh/social_count/blob/v0.0.7/lib/social_count/twitter_user.rb) लेकिन अभी भी यह त्रुटि एक बार देखी गई है, 'openssl/buffering.rb पर समाप्त होने वाले स्टैकट्रैक के साथ: 174: 'sysread_nonblock में 'http.request (नेट :: HTTP :: Get.new (uri)) से कहा जाता है। मुझे संदेह है कि कभी-कभी कनेक्शन हार्डवेयर/बिजली विफलताओं के कारण अचानक समाप्त हो जाता है, इसलिए कभी 100% गारंटी नहीं होती है कि यह नहीं होगा ऐसा होता है। लेकिन यह सिर्फ एक अनुमान है। –

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