libcurl is a client-side networking library with very extensive and robust HTTP client support.
Project website: http://curl.haxx.se/libcurl/
As a well-maintained project in C, libcurl generally builds cleanly on most platforms, and is usually included in a usable form with Linux. Other platforms may include it, but sometimes the version is too old to use with Shibboleth, which requires a version newer than approximately 7.10.0. There are frequent security updates available, so always verify that the version in use isn't superseded.
This package should be built with OpenSSL.
If you're building from source on a non-Windows platform, a typically usable configure
command would be:
./configure --disable-static --enable-thread --without-ca-bundle |
Many different options are supported to enable/disable advanced features. Most are irrelevant to Shibboleth, but a few may add obscure capabilities that might be useful to some people.
See this topic.