Ruby Net :: HTTP не может получить правильный URL - PullRequest
0 голосов
/ 27 ноября 2011

Код:

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

URL:

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 Ответ

1 голос
/ 27 ноября 2011

Если вы URL-адрес URL, вы получите

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.

Вам придется исправить этот URI вручную, заменив < на %3C через str.replace.

...