2012-01-28 70 views
1

我想知道是否有辦法知道對rails應用程序發出的http請求是否在cUrl中?在Rails應用程序上製作cUrl http請求

我有一個代碼,它執行一些前端過程,並且僅用於通過Web瀏覽器完成的http請求。現在,我希望能夠將正常的http請求區分爲一個cUrl請求,以便我可以爲cUrl請求創建另一個進程。

在此先感謝。

回答

2
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 
1

您可以查看HTTP請求中的用戶代理,但只有當curl客戶端不覆蓋它時纔會起作用,這很容易實現。如果您只爲可以信任用戶代理的「友好」客戶端執行此操作,則很簡單。請參閱one of the better resources for rails routing中的第一個示例。

+0

yehuda katz的帖子真的很有趣。謝謝 – 2012-01-29 12:24:14

相關問題