Я использую следующий код, чтобы сделать запрос и следуйте редиректов:Фарадей промежуточного слоя знать, когда что-то был перенаправлен
require 'faraday'
require 'faraday_middleware'
conn = Faraday.new() do |f|
f.use FaradayMiddleware::FollowRedirects, limit: 5
f.adapter Faraday.default_adapter
end
resp = conn.get('http://www.example.com/redirect')
resp.status
Этот код выводит 200, потому что он следовал за редирект, который является большим. Но есть ли вообще знать, существует ли переадресация или нет? что-то вроде resp.redirected
, которое установлено в true
, если было выполнено перенаправление или false, если не было перенаправления?
Я не видел ничего очевидного в коде FollowRedirects.
Должен ли я написать свое собственное промежуточное программное обеспечение, если я хочу это знать? Кто-нибудь знает о промежуточном ПО, которое может это сделать?
Отметьте Typhoeus https://github.com/typhoeus/typhoeus, выполните поиск следующего местоположения. Я не знаю, делает ли он то, что вы хотите, но может. :-) Возможно, вы захотите запустить отладчик и проверить объект ответа на любые подсказки. – Ollie
спасибо! Я думаю, что код, который у меня есть, правилен правильно. Меня интересует знание того, когда было выполнено перенаправление. Я думаю, мне нужно сравнить полученный URL с исходным URL-адресом и посмотреть, совпадают ли они. Я просто не знаю, имеет ли ответ Фарадея окончательный URL-адрес в любом месте. –
Я знаю, мне просто интересно, если бы у него был какой-то вспомогательный метод, чтобы сказать вам, было ли оно перенаправлено или нет. :-) – Ollie