2012-01-28 5 views
1

레일 앱에 대한 http 요청이 cUrl인지 확인하는 방법이 있는지 궁금합니다.레일 앱에 cUrl http 요청하기

일부 프런트 엔드 프로세스를 수행하는 코드가 있으며 웹 브라우저를 통해 수행 된 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 요청에서 user-agent를 볼 수는 있지만 curl 클라이언트가이를 대체하지 않는 경우에만 작동합니다. 이는 쉽게 수행 할 수 있습니다. 사용자 에이전트를 신뢰할 수있는 '친숙한'클라이언트에 대해서만 이것을 수행한다면 간단합니다. 첫 번째 예는 one of the better resources for rails routing을 참조하십시오.

+0

yehuda katz의 게시물은 정말 흥미 롭습니다. 감사 –