2012-01-28 7 views
1

railsアプリケーションに行われたhttpリクエストがcUrlであるかどうかを知る方法があるのだろうか?RailsアプリケーションでcUrl httpリクエストを作成する

フロントエンドプロセスを実行するコードがあり、Webブラウザで行われたHTTP要求にのみ固有のコードがあります。さて、私は、cUrl要求だけに別のプロセスを作ることができるように、通常のhttp要求を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リクエストでuser-agentを見ることはできますが、これはcurlクライアントが簡単に行うことができない場合にのみ機能します。ユーザーエージェントを信頼できる「フレンドリーな」クライアントに対してのみこれを実行しているのなら、それは簡単です。最初の例をone of the better resources for rails routingでご覧ください。

+0

yehuda katzさんの投稿は本当に面白いです。ありがとう –

関連する問題