Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
http身份验证的Ruby Mechanize问题_Ruby_Mechanize_Http Authentication_Mechanize Ruby - Fatal编程技术网

http身份验证的Ruby Mechanize问题

http身份验证的Ruby Mechanize问题,ruby,mechanize,http-authentication,mechanize-ruby,Ruby,Mechanize,Http Authentication,Mechanize Ruby,我在使用http身份验证的网站上遇到了问题,我有一个网站列表,我对这些网站做了一些修改,但其中一些网站上有http身份验证。我不希望得到这些网站的内容,我希望能够确定它们是否由http auth保护,然后继续。例如,在下面的代码段中,agent.get永远不会返回,因此我无法处理它。我怎么处理这样的案子 require 'mechanize' agent = Mechanize.new page = agent.get('http://freyalovesmusic.co.uk') 您可以假设

我在使用http身份验证的网站上遇到了问题,我有一个网站列表,我对这些网站做了一些修改,但其中一些网站上有http身份验证。我不希望得到这些网站的内容,我希望能够确定它们是否由http auth保护,然后继续。例如,在下面的代码段中,agent.get永远不会返回,因此我无法处理它。我怎么处理这样的案子

require 'mechanize'
agent = Mechanize.new
page = agent.get('http://freyalovesmusic.co.uk')

您可以假设,如果页面加载时间过长,则使用http身份验证。显然不是100%准确,但可能足够适合你的情况

您可以使用超时模块在一定时间后继续,即使agent.get从未返回:

require 'mechanize'
require 'timeout'

agent = Mechanize.new
begin
    Timeout::timeout(5) do
        page = agent.get('http://freyalovesmusic.co.uk')
    end
rescue Timeout::Error
    puts 'Page likely using http authentication'
end

它应该引发一个
Mechanize::UnauthorizedError
,但出于某种原因,它行为不端。也许你应该在mechanize github问题表单上报告它。

哇,太棒了。。。这就是最终要做的,实际上是在阅读之前做的。这验证了我的想法。