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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。