From: "Dmitry A. Ustalov" Date: 2008-11-08T18:39:01+09:00 Subject: [ruby-core:19737] [Bug #723] Net::HTTPHeader doesn't check the type of the 'value' Bug #723: Net::HTTPHeader doesn't check the type of the 'value' http://redmine.ruby-lang.org/issues/show/723 Author: Dmitry A. Ustalov Status: Open, Priority: Normal initialize_http_header() method of the Net::HTTPHeader doesn't check the type of the 'value', and crashes with exception: ---8<--- /usr/lib/ruby/1.8/net/http.rb:1142:in `initialize_http_header': undefined method `strip' for 1.43:Float (NoMethodError) from /usr/lib/ruby/1.8/net/http.rb:1140:in `each' from /usr/lib/ruby/1.8/net/http.rb:1140:in `initialize_http_header' from /usr/lib/ruby/1.8/net/http.rb:1472:in `initialize' from /usr/lib/ruby/1.8/net/http.rb:1588:in `initialize' from /usr/lib/ruby/1.8/net/http.rb:845:in `new' from /usr/lib/ruby/1.8/net/http.rb:845:in `post' --->8--- I think, we need to cast any 'value' to String in the initialize_http_header(): ---8<--- def initialize_http_header(initheader) @header = {} return unless initheader initheader.each do |key, value| warn "net/http: warning: duplicated HTTP header: #{key}" if key?(key) and $VERBOSE @header[key.downcase] = [value.strip] end end --->8--- Maybe, we should use 'value.to_s.strip' instead of 'value.strip'? My system is: Fedora 8 i386, ruby 1.8.6 (p111). // Added later: This bug is also occured in ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-linux] (Fedora 9 i386). ---------------------------------------- http://redmine.ruby-lang.org