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 :

public 'http_code' => int 0


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 189
    Points : 79
    Points
    79
    Par défaut public 'http_code' => int 0
    Bonjour !

    Voila je suis sur un projet de faire un petit site pour récupéré des data d'une API en faisant des requêtes en PHP
    J'ai déjà conçu ce genre de site avec des requêtes, mais en JS.
    Pour bien faire, j'aimerais utiliser un client REST : https://github.com/tcdent/php-restclient que j'ai réussis à installer.
    J'ai déjà écris un début de code dans le fichier php :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php 
    include 'vendor/autoload.php';
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <link rel="stylesheet" href="style.css" />
            <title>Entreprise</title>
        </head>
        <body>
            <form id="form">
                <label for="sic"> Numéro de SIRET : </label>
                <input type="text" id="sic" name="texte"/>
                <input type="submit" value="envoyer" id="valider"/>
            </form>
            <p id="result"></p>
     
            <?php
                $api = new RestClient([
                    'base_url' => "https://entreprise.data.gouv.fr/api/sirene/v3/", 
                    'format' => "json",
                    // 'headers' => [
                    //     'Content-Type' => 'application/x-www-form-urlencoded',
                    //     'Accept' => '*/*'
                    // ],
                ]);
     
                $result = $api->get("etablissements/34816059900026");
                    var_dump($result);
                if($result->info->http_code == 200)
                    var_dump($result->decode_response());
                if($result->info->http_code == 404)
                    echo 'Non trouvé';
                if($result->info->http_code == 429)
                    echo 'Seuil de requête dépassé';
                if($result->info->http_code == 500)
                    echo 'Serveur HS';
            ?>
            <script src="script.js"></script>
        </body>
    </html>
    PS : il y a des lignes commentés qui ont été ajouté pour essayé de résoudre mon souci mais aucun changement...

    Dans le navigateur ça ne m'affiche pas ce que je veux car j'ai ce http_code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public 'http_code' => int 0
    Je précise que j'ai bien évidemment essayé l'url (https://entreprise.data.gouv.fr/api/...34816059900026) directement dans le navigateur ainsi que dans Postman en get. Les 2 m'affichent bien le tableau JSON du résultat.
    Je travail avec WAMP
    Mon php est a la version 7.4.0 et composer en version 1.10.6

    J'ai fait le test sur un autre ordi de chez moi et donc avec la même box internet, j'ai le même résultat.

    Mon autre site avec les requêtes API en JS marche très bien...

    Autre précision, un ami a testé mon code chez lui et ça marche parfaitement. De plus j'ai essayé avec d'autre API, j'ai le même souci.
    Par exemple, le site que j'ai développé avec une requête API en Javascript marche très bien, mais quand j'utilise cette même API dans ce code en version PHP, ça ne marche plus... Je ne pense pas que le problème vienne de l'API.

    Je ne vois pas d’où viendrait le souci ! Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    ce code http vient de la fonction curl_getinfo donc il y a peut être un souci avec curl sur ce serveur.
    comparez les versions de curl utilisées entre les serveurs où votre code fonctionne et celui où il y a le problème.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    vérifie que l'extension curl est activée sur ton serveur Wamp. Tu peux la vérifier soit à l'aide de la fonction phpinfo() soit en vérifiant que l'une des fonctions curl existe comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if( function_exists('curl_init')){
          echo "curl activé";
        }else{
          echo "curl n'est pas activé";
      }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 189
    Points : 79
    Points
    79
    Par défaut
    Merci de vos réponses !
    J'ai essayé le code de armel18 qui me renvoi "curl activé" néanmoins j'ai fais le comparatif de mon phpinfo(); avec celui de mon amis et il s'avère que je n'avais aucune valeur dans la ligne curl.cainfo

    Ceci dit j'ai résolu mon souci depuis mais je vais expliqué si des personnes sont dans le même cas que moi !

    Après quelques recherche sur le net j'ai téléchargé un fichier avec ce lien : https://curl.haxx.se/ca/cacert.pem et déplacé celui ci dans mon répertoire php (C:\WAMP\bin\apache\apache2.4.41\bin)
    Ensuite j'ai ouvert le fichier php.ini (qui est au même endroit) avec le blocnote et modifier 2 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    curl.cainfo = "C:/WAMP/bin/apache/apache2.4.41/bin/cacert.pem"
     
    openssl.cafile = "C:/WAMP/bin/apache/apache2.4.41/bin/cacert.pem"
    J'ai relancé les service de WAMP, vérifié avec phpinfo(); et ça marche

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

Discussions similaires

  1. [.COM] Réserver de la RAM fct 48h int 21h
    Par bulerias dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 06/12/2010, 14h33
  2. Utilisation de public void add(int field, int amount)
    Par NFHnv dans le forum Débuter avec Java
    Réponses: 21
    Dernier message: 05/03/2009, 15h11
  3. [Excel] Publication d'une feuille au format .htm
    Par talumn dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/02/2009, 02h57
  4. [Dev c++ 4] implicite declaration of function "int kbhi
    Par Torpedox dans le forum Dev-C++
    Réponses: 5
    Dernier message: 01/01/2003, 13h37
  5. Les INT en mode protégé
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 8
    Dernier message: 05/12/2002, 16h13

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