1

这是我第一次提问,请温柔!

我有一个 Rails 应用程序可以处理一大堆域(到目前为止超过 100 个)的内容。每个域要么指向托管我的应用程序的位置(Heroku,如果您有兴趣),或者指向它托管的原始位置。每次域准备好时,它都需要指向 heroku 服务器,以便我的应用程序可以为其提供内容。

为了检查域是否已成功从其原始位置转换到我的应用程序,我正在编写一个脚本来查找我包含在其中的特殊隐藏标签。如果它找到标签,则该域指向我的应用程序。如果没有,它没有改变,我记录下来。

问题是,到目前为止,至少对于一个域,我的脚本收到了 404 OpenURI::HTTPError 异常。这很奇怪,因为我可以很好地访问该站点,甚至可以通过 curl 获取它。有谁知道为什么工作网站会出现这样的错误?这是重要的片段:

require 'rubygems'
require 'open-uri'
require 'hpricot'
...
url = "http://www.#{domainname}.com"
doc = Hpricot(open(url)) #<---- Problem right here.
...

感谢您所有的帮助!

4

1 回答 1

0

欢迎来到 SO!

这将是我的调试方法:

  1. 看看你是否可以单独使用 open-uri 在 irb 中复制,没有 Hpricot:

$ irb -rubygems -ropen-uri

>> open('http://www.somedomain.com')

  1. 查看您的 Heroku 日志,看看它是否触及服务器。
  2. 在原始服务器的日志中查找相同的内容。
  3. 打开类似Wireshark之类的东西来查看 HTTP 事务,看看 404 是否确实回来了。

从那开始,然后带着你的结果回来。

于 2009-11-19T20:29:49.227 回答