本文简要介绍ruby语言中 URI模块
的用法。
URI
是一个提供类来处理统一资源标识符 (RFC2396) 的模块。
特征
-
处理 URI 的统一方式。
-
引入自定义
URI
方案的灵活性。 -
具有备用
URI::Parser
(或只是不同的模式和正则表达式)的灵活性。
基本示例
require 'uri'
uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
#=> #<URI::HTTP http://foo.com/posts?id=30&limit=5#time=1305298413>
uri.scheme #=> "http"
uri.host #=> "foo.com"
uri.path #=> "/posts"
uri.query #=> "id=30&limit=5"
uri.fragment #=> "time=1305298413"
uri.to_s #=> "http://foo.com/posts?id=30&limit=5#time=1305298413"
添加自定义 URI
module URI
class RSYNC < Generic
DEFAULT_PORT = 873
end
register_scheme 'RSYNC', RSYNC
end
#=> URI::RSYNC
URI.scheme_list
#=> {"FILE"=>URI::File, "FTP"=>URI::FTP, "HTTP"=>URI::HTTP,
# "HTTPS"=>URI::HTTPS, "LDAP"=>URI::LDAP, "LDAPS"=>URI::LDAPS,
# "MAILTO"=>URI::MailTo, "RSYNC"=>URI::RSYNC}
uri = URI("rsync://rsync.foo.com")
#=> #<URI::RSYNC rsync://rsync.foo.com>
RFC 引用
查看 RFC 规范的好地方是 www.ietf.org/rfc.html 。
以下是所有相关 RFC 的列表:
Class
树
-
URI::Generic
(在 uri/generic.rb 中)-
URI::File
- (在 uri/file.rb 中) -
URI::FTP
-(在 uri/ftp.rb 中) -
URI::HTTP
- (在 uri/http.rb 中)-
URI::HTTPS
- (在 uri/https.rb 中)
-
-
URI::LDAP
-(在 uri/ldap.rb 中)-
URI::LDAPS
-(在 uri/ldaps.rb 中)
-
-
URI::MailTo
- (在 uri/mailto.rb 中)
-
-
URI::Parser
- (在 uri/common.rb 中) -
URI::REGEXP
- (在 uri/common.rb 中)-
URI::REGEXP::PATTERN -(在 uri/common.rb 中)
-
-
URI::Util -(在 uri/common.rb 中)
-
URI::Error
- (在 uri/common.rb 中)-
URI::InvalidURIError
- (在 uri/common.rb 中) -
URI::InvalidComponentError
- (在 uri/common.rb 中) -
URI::BadURIError
- (在 uri/common.rb 中)
-
相关用法
- Ruby URI.parse用法及代码示例
- Ruby URI.join用法及代码示例
- Ruby URI.decode_www_form用法及代码示例
- Ruby URI.extract用法及代码示例
- Ruby URI.regexp用法及代码示例
- Ruby URI.encode_www_form用法及代码示例
- Ruby URI.split用法及代码示例
- Ruby UndefinedConversionError.source_encoding用法及代码示例
- Ruby UnboundMethod.original_name用法及代码示例
- Ruby UID.change_privilege用法及代码示例
- Ruby Util.unescape用法及代码示例
- Ruby Util.url_encode用法及代码示例
- Ruby UNIXSocket.new用法及代码示例
- Ruby UNIXSocket.addr用法及代码示例
- Ruby UnboundMethod.bind用法及代码示例
- Ruby UNIXServer.accept用法及代码示例
- Ruby UNIXSocket.recv_io用法及代码示例
- Ruby UID.euid用法及代码示例
- Ruby UncaughtThrowError类用法及代码示例
- Ruby Util.pretty用法及代码示例
- Ruby UID.uid用法及代码示例
- Ruby UnwindDetails.all_requirements用法及代码示例
- Ruby UnboundMethod类用法及代码示例
- Ruby UnwindDetails.reversed_requirement_tree_index用法及代码示例
- Ruby UnboundMethod.parameters用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 URI模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。