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/

Google 自身による (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

glib アドオンである GNet: 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 に答える