2013-05-11 28 views
1

有人可以給出一個工作代碼的例子,說明如何在Ruby中編寫改變Web代理服務器的內容? (例如,將所有小寫文本重寫爲大寫,或者刪除所有img標籤)。如何在Ruby中編寫改變Web代理服務器的內容?

我看過mouseholeem-proxy之前,我無法得到一個簡單的例子工作。

+1

如果您需要支持HTTP/1.1(持續連接),我認爲您會驚訝這是多麼複雜。 – pguardiario 2013-05-11 11:43:54

回答

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 

但出於某種原因,我不能讓它改變的內容。也許它適合你。

+0

我有完全相同的問題。 – Gawyn 2014-01-07 16:35:41

0

請問Rack middlewares是否適合您的使用案例?我不知道你是否聽說過它們,但基本的想法是,你可以在Web服務器和端點應用程序(如Rails或Sinatra應用程序)之間放置Rack應用程序,並通過執行過濾請求或響應對其進行某種操作(如更改內容)。

我不知道你的情況是什麼,但是如果你只是想改變一些關於發送給客戶端的響應(就像你說的把文本轉換爲大寫),也許這是一個好的解決方案。

相關問題