Я пишу приложение, которое будет загружать некоторые файлы по HTTP. До некоторой степени я использовал следующий фрагмент кода для загрузки тела страницы:
import network.HTTP
simpleHTTP (getRequest "http://www.haskell.org/") >>= getResponseBody
Он работал нормально, но не смог установить соединение по протоколу HTTPS. Поэтому, чтобы исправить это, я переключился на HTTP-Conduit, и теперь я использую следующий код:
simpleHttp' :: Manager -> String -> IO (C.Response LBS.ByteString)
simpleHttp' manager url = do
request <- parseUrl url
runResourceT $ httpLbs request manager
Он может подключаться к HTTPS, но появилась новая неприятная проблема. О каждом пятом подключении не удается исключить:
getpics.hs: FailedConnectionException "i.imgur.com" 80
Я убежден, что это проблема HTTP-Conduit, потому что network.HTTP отлично работает на одном и том же наборе страниц (исключая страницы https).
Кто-нибудь встретил такую проблему и знал решение или лучше (и просто потому, что это простая задача, которая не должна принимать более нескольких строк кода), альтернативу библиотеке Conduit?