来自相对路径的绝对URL

时间:2012-01-05 21:06:03

标签: c uri relative-url

我在该文档中有一个基本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库或函数来实现这一点。

是否有图书馆证明该功能?或者更好的是一些可以使用的小型自包含文件?

2 个答案:

答案 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。