我需要在 Rails 应用程序中代理请求。我希望我可以用分块来代理它(所以,收到 1 个块,发送一个块)。该应用程序在没有分块的情况下工作正常(将请求加载到内存中并传输)。
这是我将块代理到最终客户端的代码:
self.response.headers['Last-Modified'] = Time.now.ctime.to_s
self.response_body = Enumerator.new do |y|
client = HTTPClient.new
http_response = client.get(proxy_url, nil, headers) do |chunk|
y << chunk
end
end
问题是,在收到所有块之前,我无法检查“http_response”,因此我无法根据客户端的标头设置标头。
我要做的是在发送第一个块之前传输从客户端返回的标头。这可能吗?
如果不是,这种模式在任何其他 Ruby HTTP 客户端 gem 中是否可行?