Skip to content
Snippets Groups Projects
U

urilib

Project ID: 834242
Select Git revision
  • master default
  • 0.5.0
  • 0.4.0
  • 0.3.0
  • 0.1.0
5 results
  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Gavin M. Roy authored
    1ebad28e
    History

    urilib

    RFC-3986 URI Library for Erlang.

    Parse and build URIs with automatic percent encoding and plus encoding of query arguments.

    Version Downloads Build Status codecov.io

    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}