Я пытаюсь реализовать поставщика OAuth в Rails 3. Когда я пытаюсь авторизовать клиентское приложение, я получаю эту ошибку. Я использую плагин autost для RESTful и плагин OAuth-plugin. Когда я тестировал через консоль Rails и получал эту ошибку, я думал, что мне просто нужно кодировать URL-адреса, но я получаю ту же ошибку при тестировании в браузере, поэтому я не уверен, что не так.
URI:: InvalidURIError (плохой URI (не URI?):):
Ответ 1
У меня возникли проблемы с URI.split
(возвращая эту ошибку), я не знаю, поможет ли это вам, но я отправлю здесь несколько предупреждений, кроме тех, у кого есть эта ошибка:
- Проверьте, что ваш URL-адрес не равен нулю, и он действителен.
- Сделайте
URI.encode(url)
доURI.parse
(чтобы избежать специальных символов) - Сделайте
strip
для строки, которую вы передаете вURI.parse
(чтобы избежать ведущих и завершающих пробелов).
Все в одном:
uri = URI.parse(URI.encode(url.strip))
Связанный ресурс: http://www.practicalguile.com/2007/09/15/raising-uriinvalidurierror-from-a-perfectly-valid-uri/
Ответ 2
Вы также можете использовать этот альтернативный камень URI: https://github.com/sporkmonger/addressable
Нет проблем с этим.
Очень родной, просто добавьте пространство имен в свой код после установки gem
Addressable::URI
Ответ 3
попробуйте следующее:
safeurl = URI.encode(url.strip)
response = RestClient.get(safeurl)