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

WinDev Discussion :

Obtenir fichier csv depuis une url [WD18]


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut Obtenir fichier csv depuis une url
    Bonjour, voici mon prolème :

    Je veux récupérer des informations contenues dans un fichier .csv disponible depuis une url.

    Exemple :
    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ResLancement = HTTPRequête("http://finance.yahoo.com/d/quotes.csv?s=AB.PA&f=nabvk2c1")
    SI ResLancement = Vrai ALORS
    	fSauveTexte("C:\MonFichier.csv",HTTPDonneRésultat())
    FIN
    Mais il me retourne un contenu spécifiant une redirection, ce qui paraît logique vu que l'url redirige vers un téléchargement de fichier . J'avoue être un peu bloqué sur le sujet...

    PS: Solution Wlanguage uniquement
    Le temps est le pire enemi de l'homme

  2. #2
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut
    Bonsoir,

    Et avec http://download.finance.yahoo.com/d/quotes.csv ça marche mieux?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    Non je rencontre le même problème et ce n'est pas au niveau de l'url que cela bloque
    Le temps est le pire enemi de l'homme

  4. #4
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    C'est bien HTTPRequête() qu'il te faut utiliser pour appeler l'url et HTTPDonneRésultat() pour récupérer le résultat.

    Quand je teste, il y a un problème avec ton url.
    Si on la lance dans un browser il propose bien d'ouvrir le fichier.
    Par contre HTTPDonneRésultat() donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <HEAD><TITLE>Redirect</TITLE></HEAD>
    <BODY BGCOLOR="white" FGCOLOR="black">
    <FONT FACE="Helvetica,Arial"><B>
     "<em>http://download.finance.yahoo.com/d/quotes.csv?s=AB.PA&f=nabvk2c1</em>".<p></B></FONT>
     
    <!-- default "Redirect" response (301) -->
    </BODY>
    <0>
    y-a un problème de redirection... erreur 301...

    Je ne sais comment tu as obtenu cette url ???

    En utilisant http://download.finance.yahoo.com et en tapant "AB.PA", en haut dans [Enter symbol(s)]
    J'ai atterri sur cette page http://finance.yahoo.com/q?s=AB.PA où tout en bas il y a un lien [Download Data (delayed)] vers un fichier csv.
    Et là ça marche... il manque juste 1 info par rapport à ton csv, y en a d'autres en plus... à toi de voir si y-a ce qu'il te faut...

    En tout cas le problème ne vient pas de ton code, mais de l'url...
    Remplace la par http://download.finance.yahoo.com/d/...1c1ohgv&e=.csv
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut Solution
    Bonjour, mon url est bonne même si en effet elle donne une redirection . J'ai trouvé une solution :

    Il faut analyser le résultat de l' httprequete et y récupérer l'entête pour ensuite refaire un httprequete avec cette fois l'adresse de redirection...

    Les informations sur la redirection se trouve dans l'entête de réponse HTTP.
    Pour récupérer l'entête de message HTTP tu doit utiliser le code suivant :
    sInfoEntete = = HTTPDonneRésultat(httpEntête)


    Pour ton URL, l'entête retourné est :

    HTTP/1.1 301 Redirect
    Date: Wed, 08 Jan 2014 18:54:35 GMT
    Server: ATS/4.0.2
    Cache-Control: no-store
    Content-Type: text/html
    Content-Language: en
    Location: http://download.finance.yahoo.com/d/quotes.csv…
    Content-Length: 255
    Age: 0
    Connection: keep-alive
    Via: http/1.1 r02.ycpi.nyc.yahoo.net (ApacheTrafficServer/4.0.2 [cMsSf ])
    Donc il faut récupérer la valeur de la ligne Location.
    Le temps est le pire enemi de l'homme

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

Discussions similaires

  1. Téléchargé un fichier CSV d'une URL
    Par sweet live dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2013, 23h16
  2. Réponses: 6
    Dernier message: 28/09/2012, 21h51
  3. Réponses: 2
    Dernier message: 16/07/2008, 22h32
  4. Réponses: 1
    Dernier message: 03/06/2008, 14h47
  5. Réponses: 1
    Dernier message: 02/02/2006, 14h26

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