views:

110

answers:

2

We are looking for a better C++ HTTP client library, and we're willing to pay for it.

The product we want needs to be a statically linked, and to work on these platforms:
Windows XP, Vista, 7
OS X 10.4, 10.5, and 10.6

We want it to do the following tasks really well:
1. Make HTTP GET and POST requests
2. Handle meta refresh and http redirection responses automatically
3. Automatically use proxy settings from 'Internet Options', 'ProxyCfg', or 'preferences.plist', if present
4. Optionally utilize user-supplied proxy settings
5. Efficiently provide http and proxy authentication handling if required
6. Implement proxy auto-config and WPAD

There are a few free libraries that provide some of these requirements: boost.asio, curl, winhttp, Qt/wxWidgets, udrl, ultimate tcp/ip, but we haven't found any that satisfy all our requirements. We currently use libcurl to do much of this stuff in our current product, but we're not network programmers, and we'd like to replace our code with a better solution written by experts.

Is there a commercial product that would fill our needs?

Also, it would be really nice if there were a product that provided filter-recognition capability for HTTP responses. This would be really cool, and it would save us from having to write up a bunch of parsing code for filter detection. We already detect a few popular filters such as Websense, DeepNines, LightSpeed, Network Composer, Dans Guardian, SonicWALL, Privoxy, Bsecure, and SmartFilter. But it would be great if someone else did it for us, more completely and more up-to-date.

Has anyone heard of such a product?

+1  A: 

Have you looked at NEON? It has pretty much everything you need.

I know it's not C++ specific, but it's C so you could integrate it very easily in your C++ project.

Pablo Santa Cruz
A C library would be fine, and neon looks like a pretty good http client; I probably would have used it before libcurl had I known of it. Unfortunately it lacks several things I want now, such as automatically detecting proxy settings in Windows or OS X. Thanks for the suggestion.
BigBrainz
+1  A: 

These guys have been around forever and are very well known to provide good networking SDK's: /n software

Lou Franco
Thanks for the suggestion. NSoftware's product IPWorks looks pretty decent--it does a lot of what I want, and it appears to detect firewalls. However, it doesn't automatically handle html meta refresh tags, and more importantly it doesn't handle proxy auto-config.
BigBrainz