我正在尝试在Rails 3中实现OAuth提供程序。当我尝试授权客户端应用程序时,我收到此错误。我正在使用RESTful auth插件并制作OAuth-plugin。当我通过Rails控制台进行测试并得到此错误时,我认为我只需要对URL进行编码,但在浏览器中进行测试时会出现同样的错误,因此我不确定是什么问题。
答案 0 :(得分:78)
我遇到了URI.split
的问题(返回此错误),我不知道这是否对您有所帮助,但我会在此处发布一些警告,以及其他有此错误的人:
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/
答案 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:XXXX
和https_proxy = ...
当我将它们分别更改为http_proxy = http://XX.XX.XX.XX:XXXX
和https_proxy = https://...
时,问题就消失了。