Выполнение cUrl http-запроса в приложении Rails - PullRequest
1 голос
/ 28 января 2012

Мне было интересно, есть ли способ узнать, находится ли http-запрос к приложению rails в cUrl?

У меня есть код, который выполняет какой-то интерфейсный процесс и специфичен только для http-запросасделано через веб-браузер.Теперь я хочу иметь возможность дифференцировать обычный http-запрос от cUrl-запроса, чтобы я мог выполнить другой процесс только для cUrl-запроса.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 28 января 2012
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 голос
/ 28 января 2012

Вы можете посмотреть на пользовательский агент в HTTP-запросе, но это будет работать только в том случае, если клиент curl не переопределит его, что легко сделать.Если вы делаете это только для «дружественных» клиентов, где вы можете доверять пользовательскому агенту, это просто.Смотрите первый пример в одном из лучших ресурсов для маршрутизации рельсов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...