有人可以给出一个工作代码示例,说明如何在 Ruby 中编写内容更改 Web 代理服务器吗?(例如将所有小写文本重写为大写,或删除所有 img 标签)。
问问题
834 次
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 回答