Ruby Net :: HTTP无法正确获取url

时间:2011-11-26 23:31:49

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 net-http

代码:

self.response = Net::HTTP.get_response(URI.parse(url.strip))

网址:

http://www.apmebf.com/g7116vpyxF/pw0/EDDEGMFH/EGJFDKJ/D/D/D?h=q<<lxxt%3A%2F%2F000.htfspz0.rix%3AC4%2Fgpmgo-57A64BA-54457D68<<K<<

给出错误:

bad URI(is not URI?)

我尝试使用URI.encode但是它会抛出错误:

undefined method `request_uri' for #<URI::Generic:0x007fc7ae31ecf0>

这让我疯狂 - 任何想法?

1 个答案:

答案 0 :(得分:1)

如果您对您获得的网址进行了urlencode

http%3A%2F%2Fwww.apmebf.com%2Fg7116vpyxF%2Fpw0%2FEDDEGMFH%2FEGJFDKJ%2FD%2FD%2FD%3Fh%3Dq%3C%3Clxxt%253A%252F%252F000.htfspz0.rix%253AC4%252Fgpmgo-57A64BA-54457D68%3C%3CK%3C%3C

Ruby无法在其中找到协议,因此它假设它是通用URI而不是HTTP-URI。只有HTTP-URI具有request_uri方法。

您必须通过<%3C替换为str.replace来手动修复该URI。