如何在Ruby中编写改变Web代理服务器的内容?

时间:2013-05-11 07:18:09

标签: ruby http proxy

有人可以提供一个有关如何在Ruby中编写内容更改Web代理服务器的工作代码示例吗? (例如,将所有小写文本重写为大写,或删除所有img标记)。

我之前看过mouseholeem-proxy,我无法得到一个简单的例子。

2 个答案:

答案 0 :(得分:1)

理论上这样:http://www.ruby-doc.org/stdlib-2.0/libdoc/webrick/rdoc/WEBrick/HTTPProxyServer.html

require 'webrick'
require 'webrick/httpproxy'

handler = proc do |req, res|
  if res['content-type'] == 'text/plain'
    res.body << "\nThis content was proxied!\n"
  end
end

proxy = WEBrick::HTTPProxyServer.new Port: 8000, ProxyContentHandler: handler


trap 'INT'  do proxy.shutdown end
trap 'TERM' do proxy.shutdown end
proxy.start

但由于某种原因,我不能让它改变内容。也许它对你很有用。

答案 1 :(得分:0)

Rack middlewares适合您的使用案例吗?我不知道您是否听说过它们,但基本的想法是您可以将Rack应用程序放在Web服务器和端点应用程序(如Rails或Sinatra应用程序)之间,并通过执行来过滤请求或响应对它进行某种操作(比如改变内容)。

我不知道你的情况是什么,但是如果你只是想改变发送回客户端的响应(比如将文本转换为大写,如你所说),也许这是一个很好的解决方案。