【问题标题】:Making cUrl http request on a Rails app在 Rails 应用程序上发出 cUrl http 请求
【发布时间】:2012-01-28 01:52:24
【问题描述】:

我想知道是否有办法知道对 rails 应用程序发出的 http 请求是否在 cUrl 中?

我有一个代码,它执行一些前端进程,并且只针对通过 Web 浏览器完成的 http 请求。现在,我希望能够将正常的 http 请求与 cUrl 请求区分开来,以便我可以仅为 cUrl 请求创建另一个进程。

提前致谢。

【问题讨论】:

    标签: ruby-on-rails curl httprequest


    【解决方案1】:
    if request.env["HTTP_USER_AGENT"] =~ /curl/i
    

    在您的控制器中应该可以解决问题。或者您可以使用用户代理选项在路由级别执行此操作:

    get '/resource' => 'Controller#curl_logic', constraints: {user_agent: /curl/i}
    get '/resource/' => 'Controller#view_logic' # everything else
    

    【讨论】:

      【解决方案2】:

      您可以查看 HTTP 请求中的用户代理,但这只有在 curl 客户端不覆盖它时才有效,这很容易做到。如果您只为可以信任用户代理的“友好”客户端执行此操作,那很简单。请参阅one of the better resources for rails routing 中的第一个示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-30
        • 1970-01-01
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多