我有一个网络应用程序,运行在不同的硬件上,大部分由智能电视和机顶盒组成。
我的web应用程序包含一个红宝石脚本来设置应用程序进行本地调试。这个脚本构建我的应用程序,监听文件更改,并使用简单的WEBrick服务器托管应用程序。
现在我在一个特定的硬件上遇到了一个问题。该硬件期望在加载web应用程序之前,从POST请求成功响应运行在与web应用程序相同主机上的health_check API。
我只是希望拦截这个请求并欺骗它,这样硬件就可以加载我的客户端。到目前为止,我已经做到了:
def start_server
require 'webrick'
root = File.expand_path 'public'
request_callback = Proc.new { |req, res|
if req.path =~ /health_check/
# return 200 response somehow?
end
}
server = WEBrick::HTTPServer.new :Port => 5000, :DocumentRoot => root, :RequestCallback => request_callback
server.start
end我可以将响应对象修改为将状态设置为200,但它仍然返回404。
发布于 2015-01-26 19:09:45
您不需要“拦截”所有请求并检查特定路径。您只需要mount_proc,使用proc处理特定的路由。
在server.start之前添加以下内容
server.mount_proc '/health_check' do |req, res|
res.body = 'what what' # your content here
end您可能希望将其包装在检查中,以确定您是否运行在任何自定义硬件上需要此行为。
请参阅习俗行为文档中的WEBrick文档。
https://stackoverflow.com/questions/28156938
复制相似问题