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