mirror of
https://github.com/correl/urilib.git
synced 2024-11-30 19:19:56 +00:00
A RFC-3986 URI Library for parsing and building URIs
bin | ||
docs | ||
src | ||
test | ||
.editorconfig | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
rebar.config |
urilib
RFC-3986 URI Library for Erlang.
Parse and build URIs with automatic percent encoding and plus encoding of query arguments.
API
Functions
Function | Description |
---|---|
build/1 |
Build a URI from a uri() or url . |
parse/1 |
Parse a URI from a string, returning a uri() . |
parse/2 |
Parse a URI, returning the result as either a uri() or url() . |
percent_decode/1 |
Decode a percent encoded string value. |
percent_encode/1 |
Percent encode a string value. |
percent_encode/2 |
Percent encode a string value, explicitly stating the desired case for hexidecimal values. Pass uppercase to the second value to have hex values returned as %2F instead of %2f . |
plus_decode/1 |
Decode a percent encoded string value that uses pluses for spaces. |
plus_encode/1 |
Percent encode a string value similar to percent_encode/1 , but encodes spaces with a plus (+ ) instead of %20 . |
plus_encode/2 |
Percent encode a string value similar to percent_encode/1 , but encodes spaces with a plus (+ ) instead of %20 , explicitly stating the desired case for hexidecimal values. Pass uppercase to the second value to have hex values returned as %2F instead of %2f . |
Types
Type | Definition |
---|---|
scheme() |
`http |
username() |
`string() |
password() |
`string() |
userinfo() |
`{username(), password()} |
host() |
string() |
authority() |
{userinfo(), host(), inet:port_number()} |
path() |
string() |
query() |
`[tuple() |
fragment() |
`string() |
uri() |
{scheme(), authority(), path(), query(), fragment()} |
url() |
{scheme(), username(), password(), host(), inet:port_number(), path(), query(), fragment()} |
Example Usage
Eshell V7.2.1 (abort with ^G)
1> urilib:build({http, {{"guest", "guest"}, "localhost", 15672}, "/api/queues", [{"name", "test"}], undefined}).
"http://guest:guest@localhost:15672/api/queues?name=test"
2> urilib:build({http, "guest", "guest", "localhost", 15672, "/api/queues", [{"name", "test"}], undefined}).
"http://guest:guest@localhost:15672/api/queues?name=test"
3> urilib:parse("http://guest:guest@localhost:15672/api/queues?name=test").
{http,{{"guest","guest"},"localhost",15672},
"/api/queues",
[{"name","test"}],
undefined}