1

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

我之前看过mouseholeem-proxy,但我都无法让一个简单的示例正常工作。

4

2 回答 2

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

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

于 2013-05-11T09:18:12.803 回答
0

Rack 中间件是否适合您的用例?我不知道您是否听说过它们,但基本思想是您可以将 Rack 应用程序放在网络服务器和端点应用程序(如 Rails 或 Sinatra 应用程序)之间,它们通过执行过滤请求或响应对其进行某种操作(例如更改内容)。

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

于 2013-05-11T13:49:35.843 回答