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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Récupérer données de requête api web


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut Récupérer données de requête api web
    Bonjour,
    Je suis ultra débutant en nodsJS. Donc très compliqué pour moi.

    Je cherche à récupérer les données de cette requête web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://master.wethio.io/api/candidates/0x818c426383622f001a1643ebc904e5df2fbc39cd/0x5aba66f1b56c1a27b329941a825ef895f24fe9fe/getRewards
    Extrait des données renvoyées :
    {"items":[{"_id":"62197c84c0cab600101ca3a8","epoch":29377,"startBlock":26438400,"endBlock":26439300,"address":"0x5aba66f1b56c1a27b329941a825ef895f24fe9fe","validator":"0x818c426383622f001a1643ebc904e5df2fbc39cd","validatorName":"LeVeinard","reason":"Voter","lockBalance":"0","reward":"0.4462781179891562","rewardTime":"2022-02-26T01:02:02.000Z","signNumber":60,"__v":0,"createdAt":"2022-02-26T01:04:05.355Z","updatedAt":"2022-02-26T01:04:05.355Z","masternodeReward":"0.40766408479412963718","status":"MASTERNODE"},{"_id":"621972eec0cab600101c615a","epoch":29376,"startBlock":26437500,"endBlock":26438400,"address":"0x5aba66f1b56c1a27b329941a825ef895f24fe9fe","validator":"0x818c426383622f001a1643ebc904e5df2fbc39cd","validatorName":"LeVeinard","reason":"Voter","lockBalance":"0","reward":"0.4425496119501685","rewardTime":"2022-02-26T00:20:55.000Z","signNumber":60,"__v":0,"createdAt":"2022-02-26T00:23:11.132Z","updatedAt":"2022-02-26T00:23:11.132Z","masternodeReward":"0.404258186228271122492","status":"MASTERNODE"},{"_id":"62196a19c0cab600101c2b37","epoch":29375,"startBlock":26436600,"endBlock":26437500,"address":"0x5aba66f1b56c1a27b329941a825ef895f24fe9fe","validator":"0x818c426383622f001a1643ebc904e5df2fbc39cd","validatorName":"LeVeinard","reason":"Voter","lockBalance":"0","reward":"0.443505829882809","rewardTime":"2022-02-25T23:43:50.000Z","signNumber":60,"__v":0,"createdAt":"2022-02-25T23:45:30.259Z","updatedAt":"2022-02-25T23:45:30.259Z","masternodeReward":"0.405131667792032410532","status":"MASTERNODE"},
    J'ai d'abord essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    curl --request GET \
      --url <a href="https://master.wethio.io/api/candidates/0x818c426383622f001a1643ebc904e5df2fbc39cd/0x5aba66f1b56c1a27b329941a825ef895f24fe9fe/getRewards" target="_blank">https://master.wethio.io/api/candida...9fe/getRewards</a> \
      --header 'accept: application/json'
    Mais ça ne marche pas. Ca me renvoie de la page html illisible...

    Le nodeJS m'est proposé avec cet échantillon de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    var http = require("https");
     
    var options = {
      "method": "GET",master.wethio.io
      "hostname": "",
      "port": null,
      "path": "/api/candidates/0x818c426383622f001a1643ebc904e5df2fbc39cd/0x5aba66f1b56c1a27b329941a825ef895f24fe9fe/getRewards",
      "headers": {
        "accept": "application/json"
      }
    };
     
    var req = http.request(options, function (res) {
      var chunks = [];
     
      res.on("data", function (chunk) {
        chunks.push(chunk);
      });
     
      res.on("end", function () {
        var body = Buffer.concat(chunks);
        console.log(body.toString());
      });
    });
     
    req.end();
    C'est très compliqué pour moi. Donc pourriez-vous svp m'accompagner voire me mettre sur la voie en parallèle de mes recherches ?
    D'avance merci si possible

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Mais ça ne marche pas. Ca me renvoie de la page html illisible...
    Alors, le code que vous fournissez contient des fautes de frappes (qui viennent du copier/coller ?)
    Toujours est-il que ça fonctionne bien et qu'il ne s'agit pas de code HTML illisible mais bien le code HTML de la protection anti-DDOS de Cloudflare.

    Pour que l'URL soit accessible, il faut configurer Cloudflare pour (entre autres) diminuer le level de sécurité
    Pour les détails précis, c'est dans la FAQ Cloudflare : https://support.cloudflare.com/hc/en...-with-your-API


    PS : Voici le code que j'ai testé et qui me retourne la page anti-DDOS :
    (c'est pratiquement pareil mais j'ai corrigé quelques "fautes")
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    var https = require("https");
     
    var options = {
        method: 'GET',
        host: 'master.wethio.io',
        port: 443,
        path: '/api/candidates/0x818c426383622f001a1643ebc904e5df2fbc39cd/0x5aba66f1b56c1a27b329941a825ef895f24fe9fe/getRewards',
        headers: {
            accept: "application/json"
        }
    };
     
    var req = https.request(options, function (res) {
        var chunks = [];
     
        res.on("data", function (chunk) {
            chunks.push(chunk);
        });
     
        res.on("end", function () {
            var body = Buffer.concat(chunks);
            console.log(body.toString());
        });
    });
     
    req.end();

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Bonjour darkstar123456,

    Mais moi, je suis client de l'url de cet API ! Je n'ai pas la main sur l'API pour configurer Cloudflare pour diminuer le level de sécurité.
    C'est seulement le propriétaire de l'API qui peut le faire, non ?

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Oui, seules les personnes autorisées peuvent modifier la configuration
    Et il n'y a évidemment pas moyen de bypass cette sécurité d'une autre façon (sinon elle ne servirait à rien) ^^

  5. #5
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Mais par contre, c'est accessible par navigateur sans problème mais pas par nodejs, shell...etc
    C'est rageant...

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Oui et non
    Même via votre navigateur vous n'accédez pas à l'API

    Vous accédez à la page de protection anti-DDOS; sauf que vous n'êtes pas un robot vous passez la sécurité et finissez par voir le résultat
    Le problème en passant par un serveur, vous passez pour un robot et donc vous êtes bloqué à la page de protection

  7. #7
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    C'est clair. Merci pour les réponses ;-)

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

Discussions similaires

  1. Récupérer données de requête api web
    Par BEEP-BEEP dans le forum NodeJS
    Réponses: 0
    Dernier message: 26/02/2022, 03h34
  2. [AJAX] Récupérer donnée après requête ajax
    Par airsoft28 dans le forum AJAX
    Réponses: 7
    Dernier message: 26/12/2012, 18h38
  3. Récupérer données distantes sur page web
    Par gégé140488 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/11/2010, 14h59
  4. Récupérer données d'une page web
    Par dakota77 dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/04/2010, 15h50
  5. Récupérer données d'une page web
    Par vallgui dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/10/2006, 02h21

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