Ich versuche, eine Möglichkeit zu finden, zu überprüfen, ob eine Webseite in Haskell existiert. Der Server ist nur HTTP2/HTTPS und ich versuche zu überprüfen, ob die Seite in einer Servant-Anwendung existiert.Erhalten Sie den Statuscode einer Webseite in Haskell
Gibt es irgendwelche Haskell-Pakete mit guter Dokumentation, um nur zu prüfen, ob der Statuscode 200 oder 404 ist? Und mit starken HTTPS und HTTP2 Servern arbeiten?
Hier ist, was ich derzeit mit http-Conduit, aber ich erhalte seltsame Ausnahmen (TlsExceptionHostPort (HandshakeFailed (Error_Protocol ("Server Hallo erwartet, bekam Warnung: [(AlertLevel_Fatal, HandshakeFailure)]", True, HandshakeFailure))) "thibaud.dauce.fr" 443 und 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
Werfen Sie einen Blick auf dem [ 'wreq' Paket] mit (http://www.serpentine.com/wreq/) – ErikR