bool AnalyzeUri() {
size_t i;
size_t n;
HttpStyleUri uri;
if (
nlib_is_error(uri.Parse(
"HTTP://www.EXAMPLE.com:8081/app/search?" "q=nintendo&qs=n&form=QBLH&filt=all#fragment")))
return false;
n = uri.GetNumSegment();
for (i = 0; i < n; ++i) {
}
n = uri.GetNumQuery();
for (i = 0; i < n; ++i) {
nlib_printf(
"\"%s\":\"%s\", ", uri.GetQueryKeyValue(i)->first,
uri.GetQueryKeyValue(i)->second);
}
return true;
}
bool ComposeUri() {
HttpStyleUri uri;
return false;
return false;
char uriText[2048];
if (!uri.ComposeString(uriText))
return false;
return true;
}
bool RelativePath() {
const char base[] = "http://example.com/news/index.html?ref=mynews/test";
const char relative[] = "../js/mylib.js";
Uri relativeUri;
Uri baseUri, resultUri;
if (
nlib_is_error(resultUri.AddBaseUri(relativeUri, baseUri)))
return false;
char uriText[2048];
return false;
return true;
}
bool UseUriTemplate() {
UriTemplate templ;
char str[1024];
nlib_printf(
"Template: 'http://example.com/map?{x,y}#{x,hello,y,undef,empty}'\n");
e = templ.SetTemplate("http://example.com/map?{x,y}#{x,hello,y,undef,empty}");
e = templ.SetParameter("var", "value");
e = templ.SetParameter("hello", "Hello World!");
e = templ.SetParameter("empty", "");
e = templ.SetParameter("path", "/foo/bar");
e = templ.SetParameter("x", "1024");
e = templ.SetParameter("y", "768");
return true;
}
bool SampleMain(int, char**) {
return AnalyzeUri() && ComposeUri() && RelativePath() && UseUriTemplate();
}
NLIB_MAINFUNC