Elixir語言中 URI.parse
相關用法介紹如下。
用法:
parse(uri)
@spec parse(t() | binary()) :: t()
將 URI 解析為其組件,無需進一步驗證。
此函數可以解析絕對和相對 URL。您可以通過檢查 scheme
字段是否為 nil 來檢查 URI 是絕對的還是相對的。此外,此函數要求絕對和相對 URI 格式正確,並且不執行任何驗證。請參閱下麵的"Examples" 部分。如果您想要更嚴格的驗證,請使用
。new/1
當給定一個沒有端口的 URI 時,
為 URI 的方案返回的值將用於 URI.default_port/1
:port
字段。該方案也被規範化為小寫。
如果給這個函數一個 %URI{}
結構,這個函數會原封不動地返回它。
注意:此函數設置字段:權限是出於向後兼容性的原因,但已棄用。
例子
iex> URI.parse("https://elixir-lang.org/")
%URI{
authority: "elixir-lang.org",
fragment: nil,
host: "elixir-lang.org",
path: "/",
port: 443,
query: nil,
scheme: "https",
userinfo: nil
}
iex> URI.parse("//elixir-lang.org/")
%URI{
authority: "elixir-lang.org",
fragment: nil,
host: "elixir-lang.org",
path: "/",
port: nil,
query: nil,
scheme: nil,
userinfo: nil
}
iex> URI.parse("/foo/bar")
%URI{
authority: nil,
fragment: nil,
host: nil,
path: "/foo/bar",
port: nil,
query: nil,
scheme: nil,
userinfo: nil
}
iex> URI.parse("foo/bar")
%URI{
authority: nil,
fragment: nil,
host: nil,
path: "foo/bar",
port: nil,
query: nil,
scheme: nil,
userinfo: nil
}
與
相比,此函數將解析 poorly-formed URI,例如:URI.new/1
iex> URI.parse("/invalid_greater_than_in_path/>")
%URI{
authority: nil,
fragment: nil,
host: nil,
path: "/invalid_greater_than_in_path/>",
port: nil,
query: nil,
scheme: nil,
userinfo: nil
}
另一個示例是查詢字符串中帶有方括號的 URI。它被
接受,但會被 parse/1
拒絕:new/1
iex> URI.parse("/?foo[bar]=baz")
%URI{
authority: nil,
fragment: nil,
host: nil,
path: "/",
port: nil,
query: "foo[bar]=baz",
scheme: nil,
userinfo: nil
}
相關用法
- Elixir URI.decode用法及代碼示例
- Elixir URI.encode_query用法及代碼示例
- Elixir URI.new用法及代碼示例
- Elixir URI.merge用法及代碼示例
- Elixir URI.new!用法及代碼示例
- Elixir URI.encode_www_form用法及代碼示例
- Elixir URI.char_reserved?用法及代碼示例
- Elixir URI.default_port用法及代碼示例
- Elixir URI.query_decoder用法及代碼示例
- Elixir URI.char_unescaped?用法及代碼示例
- Elixir URI.to_string用法及代碼示例
- Elixir URI.char_unreserved?用法及代碼示例
- Elixir URI.decode_query用法及代碼示例
- Elixir URI.encode用法及代碼示例
- Elixir URI.decode_www_form用法及代碼示例
- Elixir StringIO.flush用法及代碼示例
- Elixir Calendar.ISO.date_to_string用法及代碼示例
- Elixir Enum.unzip用法及代碼示例
- Elixir Date.add用法及代碼示例
- Elixir Keyword.get用法及代碼示例
- Elixir Stream用法及代碼示例
- Elixir Registry.count_match用法及代碼示例
- Elixir List.keyfind!用法及代碼示例
- Elixir Integer.pow用法及代碼示例
- Elixir NaiveDateTime用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 URI.parse(uri)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。