【发布时间】:2015-06-22 09:09:45
【问题描述】:
我正在使用以下代码发出请求并遵循重定向:
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 github.com/typhoeus/typhoeus,搜索followlocation。我不知道它是否符合您的要求,但它可能会。 :-) 您可能想要运行调试器并检查响应对象是否有任何提示。
-
谢谢!我认为我拥有的代码正确地遵循了重定向。我感兴趣的是知道何时遵循重定向。我想我需要将生成的 url 与原始 url 进行比较,看看它们是否相同。我只是不知道法拉第响应中是否有最终网址。
-
我知道,我只是想知道它是否有一些帮助方法来告诉你它是否被重定向。 :-)
-
你确实激发了一些让我想到下面答案的东西,所以谢谢。