gpt4 book ai didi

如果调用了 Mechanize 代理的 read_timeout=,则 ruby​​ Fakeweb 错误

转载 作者:行者123 更新时间:2023-12-04 16:19:41 25 4
gpt4 key购买 nike

我正在使用 Mechanize 来抓取一些网站。在抓取时,我将页面保存到文件中,稍后与 Fakeweb 一起使用以进行测试。

我的 Mechanize 代理是这样创建的:

Mechanize.new do |a| 
a.read_timeout = 20 # doesn't work with Fakeweb?
a.max_history = 1
end

当我运行我的应用程序使 Fakeweb 能够获取文件而不是实际的 Internet 访问时,我的日志会为我尝试的每个 uri 抛出这些消息
W, [2011-08-20T18:49:45.764749 #14526]  WARN -- : undefined method `read_timeout=' for #<FakeWeb::StubSocket:0xb72c150c>

如果我注释上面代码中的第二行( # a.read_timeout = 20 ... ),它就可以完美运行。完全没有问题。关于如何启用 read_timout 并使 Fakeweb 工作的任何想法?

TIA

最佳答案

猴子补丁通常是杂乱无章的,但我认为在这里是合理的:

module FakeWeb
class StubSocket
def read_timeout=(ignored)
end
end
end

超时在虚假世界中没有多大意义,因此忽略它们似乎是合理的做法。

您甚至可以考虑发送 pull request给作者。

关于如果调用了 Mechanize 代理的 read_timeout=,则 ruby​​ Fakeweb 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com