有人可以提供一个有关如何在Ruby中编写内容更改Web代理服务器的工作代码示例吗? (例如,将所有小写文本重写为大写,或删除所有img标记)。
答案 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应用程序)之间,并通过执行来过滤请求或响应对它进行某种操作(比如改变内容)。
我不知道你的情况是什么,但是如果你只是想改变发送回客户端的响应(比如将文本转换为大写,如你所说),也许这是一个很好的解决方案。