我正在编写一个应用程序,它将通过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的问题,因为在同样的页面集合上(不包括https页面),network.HTTP运行良好。
有人遇到过这样的问题并知道解决方案或更好的(且简单,因为这是一项简单的任务,应该不需要超过几行代码)替代Conduit库吗?