URI :: InvalidURIError (неверный URI (не URI?):): - PullRequest
22 голосов
/ 21 марта 2011

Я пытаюсь реализовать OAuth-провайдера в Rails 3. Когда я пытаюсь авторизовать клиентское приложение, я получаю эту ошибку.Я использую плагин RESTful auth и пеллы OAuth-плагин.Когда я тестировал через консоль Rails и получал эту ошибку, я думал, что мне просто нужно кодировать URL-адреса, но я получаю ту же ошибку при тестировании в браузере, поэтому я не уверен, что не так.

Ответы [ 4 ]

79 голосов
/ 03 мая 2011

У меня возникли проблемы с URI.split (возвращая эту ошибку), я не знаю, поможет ли это вам, но я опубликую здесь некоторые предупреждения для кого-то еще, кто имеет эту ошибку:

  1. Убедитесь, что ваш URL не ноль, и он правильный.
  2. До URI.encode(url) до URI.parse (чтобы избежать специальных символов)
  3. Выполните strip для строки, которую вы передаете URI.parse (чтобы избежать пробелов в начале и в конце).

Все в одном:

uri = URI.parse(URI.encode(url.strip))

Связанный ресурс: http://www.practicalguile.com/2007/09/15/raising-uriinvalidurierror-from-a-perfectly-valid-uri/

3 голосов
/ 21 ноября 2014

Вы также можете использовать этот альтернативный гем URI: https://github.com/sporkmonger/addressable

С ним таких проблем нет.

Очень нативный, просто добавьте пространство имен в свой код после установки гема

Addressable::URI
0 голосов
/ 19 июля 2018

Я здесь, потому что столкнулся с проблемой с фастлэйном. Он написан на Ruby, поэтому мой ответ может быть полезным.

В моем случае у меня были переменные окружения http_proxy = XX.XX.XX.XX:XXXX и https_proxy = ... Когда я изменил их на http_proxy = http://XX.XX.XX.XX:XXXX и https_proxy = https://... соответственно, проблема исчезла.

0 голосов
/ 11 октября 2014

попробуйте это:

safeurl = URI.encode(url.strip)
response = RestClient.get(safeurl)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...