Привет всем!
Пришлось как-то делать HTTP-клиент, писал его в VS.NET на WTL, естественно наткнулся на ATL7.0 класс CAtlHttpClient — но вместе с ним получил кучу проблем

. Если этот класс оставлять как он есть, то время устойчивой работы программы ограничивается 10 минутами. В общем копался в atlhttp.inl, правил баги, добавлял фичи. В конце концов заимел к нему жуткое отвращение (эх, попался бы мне тот, кто его писал

). Можно было, конечно, сделать все ручками — но долго это. Очень уж большая это область HTTP 1.1 + Proxy + Site Auth., а хотелось сосредоточится на функциональности приложения (которое я все же написал

).
Решил я обратить свой взгляд на WinInet, но судя по форумам (RSDN), с этой библиотекой у людей тоже куча проблем

. То таймауты не работают, то соединения не удаляются, да еще и реестр править надо, если хочешь больше 2-4 соединений одновременно получить... А мне нужно активно работать с несколькими потоками.
В общем вопрос такой: а какой выбор есть, если надо активно использовать интернет в программе, есть ли какие библиотеки для работы с HTTP, помимо CAtlHttpClient и WinInet? Неужели все делать ручками? А может WinInet не так уж плох и при грамотном его использовании число поблем снижается?