首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用机械化代理的read_timeout=时出现ruby Fakeweb错误

调用机械化代理的read_timeout=时出现ruby Fakeweb错误
EN

Stack Overflow用户
提问于 2011-08-21 17:34:05
回答 1查看 824关注 0票数 0

我正在使用机械化来抓取一些网站。在爬行时,我会将页面保存到文件中,以便稍后使用Fakeweb进行测试。

我的机械化代理是这样创建的:

代码语言:javascript
复制
Mechanize.new do |a| 
  a.read_timeout = 20 # doesn't work with Fakeweb?
  a.max_history = 1 
end

当我运行我的应用程序使Fakeweb能够获取文件而不是实际的Internet访问时,我的日志会为我尝试的每个uri抛出这些消息

代码语言:javascript
复制
W, [2011-08-20T18:49:45.764749 #14526]  WARN -- : undefined method `read_timeout=' for #<FakeWeb::StubSocket:0xb72c150c>

如果我注释上面代码(# a.read_timeout = 20 ...)中的第二行,它就能完美地工作。一点问题都没有。关于如何启用read_timout并让Fakeweb工作,你有什么想法吗?

提亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-21 17:57:08

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

代码语言:javascript
复制
module FakeWeb
  class StubSocket
    def read_timeout=(ignored)
    end
  end
end

超时在虚拟世界中没有太多意义,因此忽略它们似乎是一件合理的事情。

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7137467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档