I've got a base URL and some relative URIs in that document I want to have the absolute path of.
E.g. base = https://example.com/some/path.html?query=string and relative URIs in that document:
In Java you have the class URL accomplishing that:
URL abs = new URL(new URL(basePath), relPath);
But strangely enough I can't find a plain C library or function realizing just that.
Is there a library proving that feature? Or better yet some small self-contained file one can use?
You can bet this has been written a thousand times in C already. For apache, for example.
Here are some pointers:
libSoup, the http library used by GNOME: http://developer.gnome.org/libsoup/unstable/SoupURI.html#soup-uri-new-with-base
Proposed for Boost libraries: http://cpp-netlib.github.com/
By Google themselves (part of Chrome?): http://code.google.com/p/google-url/
Yet another: http://uriparser.sourceforge.net/
W3C: http://www.w3.org/Library/src/HTParse
URL parsing in libcamel: http://www.google.com/codesearch#KhbZeNk3OGk/camel/camel-url.c
Some more URI parsing APIs, that all seem to not have relative URIs:
GLib, my favorite C library: http://developer.gnome.org/glib/unstable/glib-URI-Functions.html
libedataserver (from Evolution) http://developer.gnome.org/libedataserver/stable/libedataserver-e-url.html
GNet, a glib addon: http://developer.gnome.org/gnet/stable/gnet-uri.html
For Windows, you can use CoInternetCombineUrl from Urlmon.dll or UrlCombine from Shlwapi.lib. They do the same AFAIK.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With