Skip to content
Glyn Matthews edited this page Jun 13, 2013 · 2 revisions

URI

Introduction

Examples

Below is listed a simple code example that takes a string as an argument and prints out the different URI parts:

#include <network/uri.hpp>
#include <iostream>

int main(int argc, char *arv[]) {
  network::uri uri("http://github.com/cpp-netlib/uri");
  std::cout << "Scheme: " << *uri.scheme() << std::endl
            << "Authority: " << *uri.authority() << std::endl
            << "Path: " << *uri.path() << std::endl;
  return 0;
}

The output of this program is:

Scheme: http
Authority: github.com
Path: /cpp-netlib/uri

The URI in the example above is broken into three parts according to RFC 3987, the other parts aren't present. HTTP URIs are considered hierarchical, and therefore define an authority.

The second example is similar to the one above but parses an *opaque" URI, in this instance an XMPP JID:

#include <network/uri.hpp>
#include <iostream>

int main(int argc, char *argv[]) {
  network::uri uri("xmpp:[email protected]?message;subject=Hello%20World");
  std::cout << "Scheme: " << *uri.scheme() << std::endl
            << "Path:   " << *uri.path() << std::endl
            << "Query:  " << *uri.query() << std::endl;
  return 0;
}

The example above gives the following output:

Scheme: xmpp
Path: [email protected]
Query: message;subject=Hello%20World

Motivation

Scope

Design

Clone this wiki locally