6

我在该文档中有一个基本 URL 和一些相对 URI,我想拥有其绝对路径。

例如 base = https://example.com/some/path.html?query=string和该文档中的相对 URI:

在 Java 中,您可以使用类 URL来实现:

URL abs = new URL(new URL(basePath), relPath);

但奇怪的是,我找不到一个简单的 C 库或函数来实现这一点。

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

4

2 回答 2

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

于 2012-01-05T21:11:48.363 回答
1

对于 Windows,您可以使用Urlmon.dll 中的 CoInternetCombineUrl 或Shlwapi.lib中的UrlCombine。他们做同样的AFAIK。

于 2012-04-14T14:56:04.050 回答