2015-04-16 3 views
1

Я использую следующий код, чтобы сделать запрос и следуйте редиректов:Фарадей промежуточного слоя знать, когда что-то был перенаправлен

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.

Должен ли я написать свое собственное промежуточное программное обеспечение, если я хочу это знать? Кто-нибудь знает о промежуточном ПО, которое может это сделать?

+1

Отметьте Typhoeus https://github.com/typhoeus/typhoeus, выполните поиск следующего местоположения. Я не знаю, делает ли он то, что вы хотите, но может. :-) Возможно, вы захотите запустить отладчик и проверить объект ответа на любые подсказки. – Ollie

+0

спасибо! Я думаю, что код, который у меня есть, правилен правильно. Меня интересует знание того, когда было выполнено перенаправление. Я думаю, мне нужно сравнить полученный URL с исходным URL-адресом и посмотреть, совпадают ли они. Я просто не знаю, имеет ли ответ Фарадея окончательный URL-адрес в любом месте. –

+1

Я знаю, мне просто интересно, если бы у него был какой-то вспомогательный метод, чтобы сказать вам, было ли оно перенаправлено или нет. :-) – Ollie

ответ

0

На самом деле, я думаю, что я только что нашел ответ на основе пост здесь: https://stackoverflow.com/a/20818142/4701287

Мне нужно сравнить оригинальный URL я прошел с использованием полученной ссылке. Расширение моего примера сверху:

 Смежные вопросы

  • Нет связанных вопросов^_^