Я пытаюсь найти способ проверить, существует ли веб-страница в Haskell. Сервер только HTTP2/HTTPS, и я пытаюсь проверить, существует ли страница в приложении-сервисе.Получить код статуса веб-страницы в Haskell
Есть ли пакеты Haskell с хорошей документацией, чтобы просто проверить, является ли код состояния 200 или 404? И работа с сильными серверами HTTPS и HTTP2?
Вот то, что я в настоящее время с HTTP-каналом, но я получаю странные исключения (TlsExceptionHostPort (HandshakeFailed (Error_Protocol ("ожидает сервер привет, получил предупреждение: [(AlertLevel_Fatal, HandshakeFailure)]", правда, HandshakeFailure))) «thibaud.dauce.fr» 443 и StatusCodeException).
... other imports
import qualified Network.HTTP.Conduit as HTTP
... other types
type AppM = ReaderT Config (EitherT ServantErr IO)
newComment :: String -> OneComment -> AppM Int64
newComment baseUrl oneComment = do
time <- liftIO getCurrentTime
response <- HTTP.withManager $ \manager -> do
request <- HTTP.parseUrl $ url oneComment
HTTP.httpLbs request manager
case (statusIsSuccessful $ HTTP.responseStatus response, startswith baseUrl (url oneComment)) of
(_, False) -> return 0
(True, True) -> do
theNewComment <- runDb $ insert $ Comment (url oneComment) (content oneComment) time
return $ fromSqlKey theNewComment
_ -> return 0
Посмотрите на [ 'wreq' пакет] (http://www.serpentine.com/wreq/) – ErikR