我正在构建某种代理。
当我在机架应用程序中调用某个 url 时,我将该请求转发到另一个 url。
我转发的请求是一个带有文件和一些参数的 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 请求中,只能添加到正文中。
有没有更简单的方法来代理这样的机架请求?或者一种将我的参数添加到我的请求的干净方法?