類別 URI::WS
WS
URI 的語法定義在 RFC6455 第 3 節。
請注意,Ruby URI
函式庫允許 WS
URL 包含使用者名稱和密碼。根據 RFC,這是不合法的,但在 MS04-004 安全更新之前,Internet Explorer 5 和 6 曾經支援。請參閱 <URL:support.microsoft.com/kb/834489>。
常數
公開類別方法
build(args) 按一下以切換來源
說明¶ ↑
使用元件建立新的 URI::WS
物件,並執行語法檢查。
可接受的元件包括 userinfo、host、port、path 和 query。
元件應提供為 Array
,或為 Hash
,其中金鑰是由元件名稱加上冒號組成。
如果使用 Array
,則必須按順序傳遞元件 [userinfo, host, port, path, query]
。
範例
uri = URI::WS.build(host: 'www.example.com', path: '/foo/bar') uri = URI::WS.build([nil, "www.example.com", nil, "/path", "query"])
目前,如果傳遞 userinfo 元件,此方法會根據 RFC 1738 產生無效的 WS
URI。
呼叫超類別方法
URI::Generic::build
# File lib/uri/ws.rb, line 56 def self.build(args) tmp = Util.make_components_hash(self, args) super(tmp) end
公開實例方法
request_uri() 按一下以切換來源
說明¶ ↑
傳回 WS
URI
的完整路徑,這是 Net::HTTP::Get
所要求的。
如果 URI
包含查詢,完整路徑為 URI#path + ‘?’ + URI#query。否則,路徑僅為 URI#path。
範例
uri = URI::WS.build(path: '/foo/bar', query: 'test=true') uri.request_uri # => "/foo/bar?test=true"
# File lib/uri/ws.rb, line 74 def request_uri return unless @path url = @query ? "#@path?#@query" : @path.dup url.start_with?(?/.freeze) ? url : ?/ + url end