首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拦截WEBrick请求

拦截WEBrick请求
EN

Stack Overflow用户
提问于 2015-01-26 19:06:27
回答 1查看 665关注 0票数 1

我有一个网络应用程序,运行在不同的硬件上,大部分由智能电视和机顶盒组成。

我的web应用程序包含一个红宝石脚本来设置应用程序进行本地调试。这个脚本构建我的应用程序,监听文件更改,并使用简单的WEBrick服务器托管应用程序。

现在我在一个特定的硬件上遇到了一个问题。该硬件期望在加载web应用程序之前,从POST请求成功响应运行在与web应用程序相同主机上的health_check API。

我只是希望拦截这个请求并欺骗它,这样硬件就可以加载我的客户端。到目前为止,我已经做到了:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-26 19:09:45

您不需要“拦截”所有请求并检查特定路径。您只需要mount_proc,使用proc处理特定的路由。

server.start之前添加以下内容

代码语言:javascript
复制
server.mount_proc '/health_check' do |req, res|
  res.body = 'what what' # your content here
end

您可能希望将其包装在检查中,以确定您是否运行在任何自定义硬件上需要此行为。

请参阅习俗行为文档中的WEBrick文档。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28156938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档