URI :: InvalidURIError(错误的URI(不是URI?):):

时间:2011-03-21 06:24:45

标签: ruby-on-rails-3 oauth

我正在尝试在Rails 3中实现OAuth提供程序。当我尝试授权客户端应用程序时,我收到此错误。我正在使用RESTful auth插件并制作OAuth-plugin。当我通过Rails控制台进行测试并得到此错误时,我认为我只需要对URL进行编码,但在浏览器中进行测试时会出现同样的错误,因此我不确定是什么问题。

4 个答案:

答案 0 :(得分:78)

我遇到了URI.split的问题(返回此错误),我不知道这是否对您有所帮助,但我会在此处发布一些警告,以及其他有此错误的人:

  1. 检查您的网址是否为零,这是有效网址。
  2. URI.encode(url)之前URI.parse(以避免使用特殊字符)
  3. 对传递给strip的字符串执行URI.parse(以避免前导和尾随空格)。
  4. 一体化:

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

    相关资源:http://www.practicalguile.com/2007/09/15/raising-uriinvalidurierror-from-a-perfectly-valid-uri/

答案 1 :(得分:3)

您还可以使用此替代URI gem:https://github.com/sporkmonger/addressable

没有这样的问题。

非常原生,只需在安装gem

后在代码中添加命名空间
Addressable::URI

答案 2 :(得分:0)

试试这个:

safeurl = URI.encode(url.strip)
response = RestClient.get(safeurl)

答案 3 :(得分:0)

我在这里是因为我遇到了快车道的问题。它是用Ruby编写的,因此我的回答可能会有所帮助。

就我而言,我有环境变量http_proxy = XX.XX.XX.XX:XXXXhttps_proxy = ... 当我将它们分别更改为http_proxy = http://XX.XX.XX.XX:XXXXhttps_proxy = https://...时,问题就消失了。