我正在建立某種代理。
當我在機架應用程序中調用某個url時,我將該請求轉發給其他url。發佈請求body_stream和參數
我轉發的請求是一個包含文件和一些參數的POST。
我想添加更多參數。
但該文件可能相當大。所以我發送Net::HTTP#body_stream
而不是Net::HTTP#body
。
我得到我的請求作爲Rack::Request
對象,我用它創建了我的Net :: HTTP對象。
req = Net::HTTP::Post.new(request.path_info)
req.body_stream = request.body
req.content_type = request.content_type
req.content_length = request.content_length
http = Net::HTTP.new(@host, @port)
res = http.request(req)
我試過幾種方法來添加代理的參數。但是Net :: HTTP中似乎沒有任何東西允許將參數添加到body_stream請求中,而只能添加到body_stream請求中。
有沒有更簡單的方法來代理這樣的機架請求?或者一個乾淨的方式來添加我的參數到我的請求?
爲什麼'req.set_form_data(:some =>'data')'不起作用? – mikezter 2010-04-16 11:07:24
因爲它定義了'#body'並且重置了'#body_stream',所以我失去了以前定義的所有數據。 – 2010-04-16 13:35:17