我想知道是否有辦法知道對rails應用程序發出的http請求是否在cUrl中?在Rails應用程序上製作cUrl http請求
我有一個代碼,它執行一些前端過程,並且僅用於通過Web瀏覽器完成的http請求。現在,我希望能夠將正常的http請求區分爲一個cUrl請求,以便我可以爲cUrl請求創建另一個進程。
在此先感謝。
我想知道是否有辦法知道對rails應用程序發出的http請求是否在cUrl中?在Rails應用程序上製作cUrl http請求
我有一個代碼,它執行一些前端過程,並且僅用於通過Web瀏覽器完成的http請求。現在,我希望能夠將正常的http請求區分爲一個cUrl請求,以便我可以爲cUrl請求創建另一個進程。
在此先感謝。
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
您可以查看HTTP請求中的用戶代理,但只有當curl客戶端不覆蓋它時纔會起作用,這很容易實現。如果您只爲可以信任用戶代理的「友好」客戶端執行此操作,則很簡單。請參閱one of the better resources for rails routing中的第一個示例。
yehuda katz的帖子真的很有趣。謝謝 – 2012-01-29 12:24:14