我在该文档中有一个基本URL和一些相对URI,我想拥有绝对路径。
E.g。 base = https://example.com/some/path.html?query=string和该文档中的相对URI:
在Java中,class URL完成了:
URL abs = new URL(new URL(basePath), relPath);
但奇怪的是,我无法找到一个简单的C库或函数来实现这一点。
是否有图书馆证明该功能?或者更好的是一些可以使用的小型自包含文件?
答案 0 :(得分:4)
你可以打赌这已经在C中写过一千次了。例如,对于apache。
以下是一些提示:
libSoup,GNOME使用的http库:http://developer.gnome.org/libsoup/unstable/SoupURI.html#soup-uri-new-with-base
为Boost图书馆提议:http://cpp-netlib.github.com/
谷歌自己(Chrome的一部分?):http://code.google.com/p/google-url/
又一个:http://uriparser.sourceforge.net/
W3C:http://www.w3.org/Library/src/HTParse
libcamel中的URL解析:http://www.google.com/codesearch#KhbZeNk3OGk/camel/camel-url.c
更多URI解析API,似乎不都有相对URI:
GLib,我最喜欢的C库:http://developer.gnome.org/glib/unstable/glib-URI-Functions.html
libedataserver(来自Evolution) http://developer.gnome.org/libedataserver/stable/libedataserver-e-url.html
GNet,一个glib插件:http://developer.gnome.org/gnet/stable/gnet-uri.html
答案 1 :(得分:1)
对于Windows,您可以使用Urlmon.dll中的CoInternetCombineUrl或Shlwapi.lib中的UrlCombine。他们做同样的AFAIK。