Когда я использую Руби 1.8.7 Net :: HTTP.post_form (URI.parse (URL), PARAMS), я обнаружил, что есть ошибка, см:Как переопределить метод ruby lib?
https://stackoverflow.com/questions/3214502/how-to-send-an-array-with-nethttp-post-form
Мой код является регулярным рубин сценарий, и я хочу, чтобы переопределить этот метод (net/http.rb#set_form_data
), как это:
require 'net/http'
require 'uri'
module Net
module HTTPHeader
def set_form_data(params, sep = '&')
params_array = params.map do |k,v|
v.inject([]){|c, val| c << "#{urlencode(k.to_s)}=#{urlencode(val.to_s)}"}.join(sep)
end
self.body = params_array.join(sep)
self.content_type = 'application/x-www-form-urlencoded'
end
end
end
res = Net::HTTP.post_form(URI.parse(URL),
{'type'=>'flowers',
'colors[]' => %w[red white blue] })
Но, кажется, мой set_form_data
метод не был вызван (I debuged). Что-то не так в моем коде?