Elixir語言中 URI.new
相關用法介紹如下。
用法:
new(uri)
(從 1.13.0 開始)
@spec new(t() | String.t()) :: {:ok, t()} | {:error, String.t()}
從 URI 或字符串創建新的 URI 結構。
如果給出 %URI{}
結構,則返回 {:ok, uri}
。如果給出一個字符串,它將解析並驗證它。如果字符串有效,則返回 {:ok, uri}
,否則返回帶有 URI 無效部分的 {:error, part}
。如需在沒有進一步驗證的情況下解析 URI,請參閱
。parse/1
此函數可以解析絕對和相對 URL。您可以通過檢查scheme
字段是否為nil
來檢查URI 是絕對的還是相對的。
當給定一個沒有端口的 URI 時,
為 URI 的方案返回的值將用於 URI.default_port/1
:port
字段。該方案也被規範化為小寫。
例子
iex> URI.new("https://elixir-lang.org/")
{:ok, %URI{
fragment: nil,
host: "elixir-lang.org",
path: "/",
port: 443,
query: nil,
scheme: "https",
userinfo: nil
}}
iex> URI.new("//elixir-lang.org/")
{:ok, %URI{
fragment: nil,
host: "elixir-lang.org",
path: "/",
port: nil,
query: nil,
scheme: nil,
userinfo: nil
}}
iex> URI.new("/foo/bar")
{:ok, %URI{
fragment: nil,
host: nil,
path: "/foo/bar",
port: nil,
query: nil,
scheme: nil,
userinfo: nil
}}
iex> URI.new("foo/bar")
{:ok, %URI{
fragment: nil,
host: nil,
path: "foo/bar",
port: nil,
query: nil,
scheme: nil,
userinfo: nil
}}
iex> URI.new("//[fe80::]/")
{:ok, %URI{
fragment: nil,
host: "fe80::",
path: "/",
port: nil,
query: nil,
scheme: nil,
userinfo: nil
}}
iex> URI.new("https:?query")
{:ok, %URI{
fragment: nil,
host: nil,
path: nil,
port: 443,
query: "query",
scheme: "https",
userinfo: nil
}}
iex> URI.new("/invalid_greater_than_in_path/>")
{:error, ">"}
給出一個現有的 URI 隻是返回它包裝在一個元組中:
iex> {:ok, uri} = URI.new("https://elixir-lang.org/")
iex> URI.new(uri)
{:ok, %URI{
fragment: nil,
host: "elixir-lang.org",
path: "/",
port: 443,
query: nil,
scheme: "https",
userinfo: nil
}}
相關用法
- Elixir URI.new!用法及代碼示例
- Elixir URI.decode用法及代碼示例
- Elixir URI.encode_query用法及代碼示例
- Elixir URI.parse用法及代碼示例
- Elixir URI.merge用法及代碼示例
- 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.new(uri)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。