我想在Rails 3中實現一個OAuth提供程序。當我嘗試授權客戶端應用程序時,出現此錯誤。我使用的是RESTful認證插件,並使用OAuth插件。當我通過Rails控制檯進行測試並發現這個錯誤時,我認爲我只需要對URL進行編碼,但在瀏覽器中測試時出現相同的錯誤,所以我不確定哪裏出錯。URI :: InvalidURIError(壞URI(不是URI?):):
19
A
回答
75
我陷入麻煩URI.split
(返回該錯誤),我不知道如果這能幫助你,但我會在這裏發佈一些警告,也有人有這樣的錯誤:
- 檢查您的網址不是零,這是一個有效的。
- 不要
URI.encode(url)
之前URI.parse
(避免特殊字符) - 做
strip
給你傳遞給URI.parse
(以避免前導和尾部空格)的字符串。
All in one的:
uri = URI.parse(URI.encode(url.strip))
相關資源:http://www.practicalguile.com/2007/09/15/raising-uriinvalidurierror-from-a-perfectly-valid-uri/
0
試試這個:
safeurl = URI.encode(url.strip)
response = RestClient.get(safeurl)
+4
你能在你的答案中添加細節嗎? – Zulu 2014-10-11 03:31:56
3
您也可以使用這種替代URI寶石:https://github.com/sporkmonger/addressable
有一世它沒有這樣的問題。
非常原始,只是在安裝寶石
Addressable::URI
相關問題
- 1. URI :: InvalidURIError壞URI(不是URI?):使用Tanker
- 2. 吊艙安裝專用吊艙URI :: InvalidURIError - 壞URI(?是不是URI)
- 3. 紅寶石URI :: InvalidURIError:壞URI(是不是URI?)除了編碼
- 4. (URI :: InvalidURIError)「錯誤的URI(不是URI?)
- 5. 西納特拉/機架`ERROR URI :: InvalidURIError:壞URI(是不是URI?)`對重定向
- 6. 錯誤URI :: InvalidURIError:錯誤的URI(不是URI?),因爲瀏覽器
- 7. 解析具有大括號的URI,URI :: InvalidURIError:錯誤的URI(不是URI?)
- 8. 壞URI(?是不是URI)使用click_link
- 9. Open-uri拋出錯誤=>(URI :: InvalidURIError)
- 10. URI :: InvalidURIError PostgreSQL Rails 3.2.3
- 11. 廚師:Addressable :: URI :: InvalidURIError
- 12. Logstash 5.1.1「壞URI(不URI?)」
- 13. 不能分割「:壞的URI(不URI):
- 14. 紅寶石:URI :: InvalidURIError(URI必須是ASCII只
- 15. 錯誤的URI(不是URI?):
- 16. 無效的URI - 如何防止URI :: InvalidURIError錯誤?
- 17. 黃瓜和URI的麻煩:: InvalidURIError
- 18. URI :: InvalidURIError雖然我使用RSpec +水豚
- 19. android Uri to Java URI
- 20. 如何檢測URI是否是從URI
- 21. https://rubygems.org/不是URI
- 22. [紅寶石]:壞Uri錯誤
- 23. heroku運行錯誤,壞URI
- 24. Ruby on Rails的壞URI
- 25. Twitter的寶石:壞URI?
- 26. base-uri不返回源文件的URI
- 27. URI公理URI不透明與緩存
- 28. C#URI無效:URI爲空
- 29. Uri映射和uri路由
- 30. 解決Uri在壞位圖上失敗Uri
這樣做仍然沒有幫我拆了網址後,你的代碼添加命名空間。對此有何建議?我能夠在這裏找到使用自定義uri部件匹配器的提示:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/uri/rdoc/URI.html#comment-726255789,我不知道該怎麼重寫我的問題(查詢參數有字符不被'URI.split'接受)。 – thekingoftruth 2013-02-13 20:40:52
實際上,我真的認爲我會用簡單的'ol正則表達式來實現我需要做的事情。 'URI.split'似乎是rfc3986的一個不完整的解析器,所以繞過它並避免一些頭痛可能會更好。 – thekingoftruth 2013-02-13 20:44:45
你會在哪裏放置這個?在搜索控制器例如或在配置文件?謝謝! – 2015-01-22 16:14:31