IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Haskell Discussion :

lire le contenu d'une URL


Sujet :

Haskell

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut lire le contenu d'une URL
    Bonjour,

    je souhaite lire le contenu d'une url, par exemple "http://fr.wikipedia.org/wiki/Haskell" à l'aide d'une fonction Haskell.

    Cette fonction devrait être de la forme :
    String->IO (String)

    D'avance merci.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Le plus simple si c'est vraiment tout ce que tu veux faire est d'utiliser Network.HTTP.Simple.httpGet. Pour quelque chose d'un peu plus complexe, Network.HTTP serait sans doute préférable.

    Et si tu veux vraiment une fonction exactement du type que tu demandes, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import Network.URI
    import Network.HTTP.Simple
    import Data.Maybe
    import Control.Monad
     
    justGet :: String -> IO String
    justGet s = liftM (fromMaybe (error $ "The GET request for " ++ s ++ " failed.\n"))
                $ httpGet
                  $ fromMaybe (error $ s ++ " is not a valid URI.\n")
                    $ parseURI s
    --
    Jedaï

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Merci pour la rapidité et la précision de la réponse.

    Donc pour lire, après avoir importer les modules Network.HTTP.Simple, Network.URI et Data.Maybe, je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    httpGet $ fromJust (parseURI "http://fr.wikipedia.org.wiki/Haskell")
    lorsque j'ai tapé ce code, je n'avais pas vu l'exemple bien plus complet donné dans le message précédent.

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par turin75 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    httpGet $ fromJust (parseURI "http://fr.wikipedia.org.wiki/Haskell")
    lorsque j'ai tapé ce code, je n'avais pas vu l'exemple bien plus complet donné dans le message précédent.
    Non, non, c'est très bien, la fonction que j'ai donnée était un compromis pour avoir des erreurs significatives en gardant le type que tu avais demandé, mais dans le cas où l'URI est une constante, ça n'aurait pas de sens d'utiliser fromMaybe plutôt que fromJust pour parseURI, et retourner une IO (Maybe String) est préférable du point de vue gestion d'erreur.

    (fromMaybe (error ...) est préférable à fromJust lorsqu'on n'est pas complètement sûr qu'on obtiendra bien un Just parce que cela donne une erreur plus claire et facile à tracer, mais ici fromJust est parfaitement approprié).

    --
    Jedaï

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour lire le contenu d'une url
    Par eric41 dans le forum Langage
    Réponses: 3
    Dernier message: 25/12/2012, 23h30
  2. Réponses: 6
    Dernier message: 29/08/2011, 15h12
  3. Réponses: 7
    Dernier message: 20/12/2010, 20h39
  4. [impression] imprimer le contenu d'une url
    Par FFF dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 30/11/2005, 15h07
  5. Lire le contenu d'une page web grâce à un script PHP
    Par BloodyImp dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2005, 22h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo