加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何将方案设置为Ruby中的URI对象

发布时间:2020-12-16 21:39:29 所属栏目:百科 来源:网络整理
导读:我试图从用户输入解析一个URI.我假设一些用户不会将该方案放在他们的URI中,我想默认为“http”. 以下代码不起作用: require 'uri' uri_to_check = URI::parse("www.google.com")uri_to_check.scheme = "http" unless uri_to_check.schemeputs uri_to_check.
我试图从用户输入解析一个URI.我假设一些用户不会将该方案放在他们的URI中,我想默认为“http”.

以下代码不起作用:

require 'uri'   

uri_to_check = URI::parse("www.google.com")
uri_to_check.scheme = "http" unless uri_to_check.scheme

puts uri_to_check.to_s

我希望看到“http://www.google.com”,但我得到“http:www.google.com”.甚至有可能这样做吗?

如果是这样,我还缺少什么?

有没有更好的方法来做到这一点?

解决方法

领先的斜杠(//)表示URL是基于IP的地址,需要标记主机名,以便URI可以正确解析它们.

维基百科有一些很好的概述和使用的例子:

http://en.wikipedia.org/wiki/Url,
http://en.wikipedia.org/wiki/URI_scheme,
http://en.wikipedia.org/wiki/URL_normalization

最好的信息是规范本身:http://www.ietf.org/rfc/rfc1738.txt特别是在3.1“3.1.通用互联网方案语法”.

您可能需要考虑使用可寻址的gem.它更智能,当我需要做很多URI解析或操作时,我使用的是什么.

http://addressable.rubyforge.org/和
http://addressable.rubyforge.org/api/Addressable/URI.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读