1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Lecture de fichiers XML via URL

Discussion dans 'Windev Mobile' créé par fr85, Juil 27, 2020.

  1. fr85

    fr85 Member

    Inscrit:
    Mai 22, 2020
    Messages:
    123
    J'aime reçus:
    7
    Bonjour à tous,

    Actuellement je rencontre un problème pour récupérer les données de fichiers XML qui sont sur mon serveur.

    J'utilise la fonction FTPConnect et FTPRecupère, cela fonctionne très bien mais je constate que de temps en temps j'ai le message d'erreur suivant qui s'affiche sur mon application :

    [​IMG]

    Je pense que cela est dû à trop de connexion simultannées sur mon serveur via FTP donc mon hébergeur bloque au dessus de 30 connexions. Mon hébergeur n'a pas pu me dire si ce message voulait dire que la connexion est refusée. Selon vous est-ce vraiment ca ?

    Je pense donc que cette solution n'est pas viable pour mon application. Je cherche donc une alternative à la récupération de mes fichiers XML qui sont sur mon serveur FTP.

    J'ai lu ici :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    qu'il fallait faire un HTTPRequête et un HTTPDonne Résultat mais je récupère un buffer qui me donne des symboles chinois.

    J'utilise ce code qui est dans l'exemple :

    ResLancement = HTTPRequête("ICI URL VERS MON FICHIER XML")
    SI ResLancement = Vrai ALORS
    ResCode est une chaîne = HTTPDonneRésultat()
    Info("Code HTML : " + ResCode)
    ResEntête est une chaîne = HTTPDonneRésultat(httpEntête)
    Info("Entête : " + ResEntête)
    ResCookie est une chaîne = HTTPDonneRésultat(httpCookie)
    Info("Cookie : " + ResCookie)
    FIN

    Je suis donc bloqué sur la conversion du buffer en une chaine contenant le HTML ou bien le XML.

    Je vous remercie d'avance et bonne journée.
     
    #1 fr85, Juil 27, 2020
    Dernière édition: Juil 27, 2020
    Tags:
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,884
    J'aime reçus:
    1,532
    Sur mobile et web les caractères utilisent un codage différent que sur windows.
    Déjà dans ton cas, ce n'est pas un buffer mais un texte que tu récupère.
    Ensuite sur le web le codage est en général en utf8 donc l'utilisation des fonctions utf8vers semblent nécessaire.
    Enfin sur mobile c'est le codage unicode et les fonctions unicode peuvent aussi être nécessaire.
    Il faut tout d'abord vérifier si ta configuration de ton projet est ansi ou unicode.
     
  3. fr85

    fr85 Member

    Inscrit:
    Mai 22, 2020
    Messages:
    123
    J'aime reçus:
    7
    ok je vais regarder de ce côté.

    Et que penses tu du message d'errreur que je reàois de temps en temps ? Il s'agit du nombre de connection max qui est atteint selon toi ou pas ? Merci
     
  4. fr85

    fr85 Member

    Inscrit:
    Mai 22, 2020
    Messages:
    123
    J'aime reçus:
    7

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Sur mobile et web les caractères utilisent un codage différent que sur windows.
    Déjà dans ton cas, ce n'est pas un buffer mais un texte que tu récupère.
    Ensuite sur le web le codage est en général en utf8 donc l'utilisation des fonctions utf8vers semblent nécessaire.
    Enfin sur mobile c'est le codage unicode et les fonctions unicode peuvent aussi être nécessaire.
    Il faut tout d'abord vérifier si ta configuration de ton projet est ansi ou unicode.
    Cliquez pour agrandir...

    J'ai regardé avec
    xmlDoc est un xmlDocument
    xmlDoc = XMLOuvre("ICI URL/PALM1.XML", depuisURL)

    Est-ce plus rapide que :

    ResCode est une chaîne ANSI
    ResLancement est une chaîne ANSI = HTTPRequête("ICI URL/PALM1.XML")
    SI ResLancement = Vrai ALORS
    ResCode = HTTPDonneRésultat(httpRésultat)
    Info("Code HTML : " + ResCode)
    // ResEntête est une chaîne ANSI = HTTPDonneRésultat(httpEntête)
    // Info("Entête : " + ResEntête)
    // ResCookie est une chaîne ANSI = HTTPDonneRésultat(httpCookie)
    // Info("Cookie : " + ResCookie)
    FIN

    Tous les deux fonctionne mais je me demandais ce qui est plus rapide comme procédure.
     
  • khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142
    ben lance un chrono avant chaque appel et puis tu compare
    ren ne vaut l'empirique je dirais.

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  • Partager cette page

    Chargement...