我正在使用加铺器来获取不同的url,如果响应是200,我就会得到我需要的。但是,如果响应是重定向,那么即使我要求路缘石-例如:

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]。
要解决你的问题,只需设置一个:

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

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

关于ruby - Ruby Curb不遵循重定向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17943058/

10-12 15:19