Ruby Curb不遵循重定向

时间:2013-07-30 09:21:44

标签: ruby http curl curb

我正在使用Curb获取各种URL,如果响应为200,我得到了我需要的东西。但是,如果响应是重定向,Curb似乎不会遵循重定向,即使我要求它 - 例如:

easy = Curl::Easy.new
easy.follow_location = true
easy.max_redirects = 3 
easy.url = "http://stats.berr.gov.uk/ed/vat/VATStatsTables2a2d2007.xls"
easy.perform

=> Curl::Err::GotNothingError: Curl::Err::GotNothingError
from /Users/stuart/.rvm/gems/ruby-2.0.0-p0@datakitten/gems/curb-0.8.4/lib/curl/easy.rb:60:in `perform'

但是,如果我在命令行上执行curl -L http://stats.berr.gov.uk/ed/vat/VATStatsTables2a2d2007.xls,我会得到预期的响应。我做错了什么?

1 个答案:

答案 0 :(得分:2)

听起来如果您没有提供用户代理,此服务器将返回空回复[1]。

要解决您的问题,只需设置一个:

...
easy.useragent = "curb"
easy.perform

[1]:curl -A '' -L http://stats.berr.gov.uk/...提供(52) Empty reply from server