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

IGN API Géoportail Discussion :

Retour JSON NULL


Sujet :

IGN API Géoportail

  1. #1
    Nouveau Candidat au Club
    Retour JSON NULL
    Bonjour,

    J'utilise actuellement la clef "gratuite" pour tester l' API.

    Voilà mon lien:

    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $url= "http://wxs.ign.fr/".$valid_KEY."/itineraire/rest/route.json?origin=".$origin."&destination=".$destination."&method=".$method."&graphName=".$graphName
    $json = file_get_contents($url);
     
    $parsed_json = json_decode($json);

    Évidement les variables sont ok, quand je fais un vardump($json) ou vardump($parsed_json) de la réponse, j'ai comme message NULL

    Je suis en local sur MAMP, avez vous une idée ? Avez vous besoin de plus d'informations ?

    Merci

  2. #2
    Futur Membre du Club
    Je ne suis pas compétent en PHP, mais d'après https://www.php.net/manual/fr/function.file-get-contents.php, la valeur de retour de la fonction "file_get_contents($filename)" peut être une valeur equivalente à FALSE. La valeur NULL est-elle équivalente à FALSE en PHP ?
    Si c'est le cas, le problème ne peut-il pas venir d'un échec de la requête ?
    Que donne une requête get vers "$url" par un autre moyen, tel qu'un n'avigateur web ou un client REST ?

  3. #3
    Nouveau Candidat au Club
    Lorsque je fais la demande à l’api en tapant directement l’URL dans un navigateur, j’ai bien un fichier JSON qui apparaît avec toutes les infos...

  4. #4
    Futur Membre du Club
    Bonjour,

    Est-ce que le paramètre allow_url_fopen est activé sur le site ?

    Cela peut être réalisé en créant un fichier php.ini à la base du site, avec cette directive :
    Avez-vous les mêmes résultats en utilisant la méthode cURL, comme ci-après ?
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL,$url);
    $result=curl_exec($ch);
    curl_close($ch);
     
    vardump(json_decode($result, true));


    Cordialement,
    azarzelli

  5. #5
    Nouveau Candidat au Club
    Bonjour,

    Oui même résultat.

    php.ini OK

    Voilà mon code:
    Code php :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
    $GLOBALS['API'] = "GEOPORTAIL";
    $origin = "48.3775481773,7.61937437402";
    $destination = "48.5712679849,7.76752679517";
     
    //API Geoportail
    if($GLOBALS['API'] == "GEOPORTAIL"){
    $valid_KEY = "choisirgeoportail";
    $method = "DISTANCE";
    $graphName = "Voiture";
    $url= "http://wxs.ign.fr/".$valid_KEY."/itineraire/rest/route.json?origin=".$origin."&destination=".$destination."&method=".$method."&graphName=".$graphName;
    // $parsed_json = GetUrl_and_ParseJson($url);
    // var_dump($parsed_json);
     
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL,$url);
    $result=curl_exec($ch);
    curl_close($ch);
     
     
    var_dump(json_decode($result, true));
     
    $distance = $parsed_json->{'routes'}{0}->{'summary'}->{'lengthInMeters'};
    $temps = $parsed_json->{'routes'}{0}->{'summary'}->{'travelTimeInSeconds'};
     
    echo "DISTANCE: ".$distance."<br />";
    echo "TEMPS: ".$temps;
    }


    Cela me retourne NULL, et pas d'erreur dans error_php...

  6. #6
    Futur Membre du Club
    Le site se situe-t-il derrière un proxy ?

    Pouvez-vous accéder à l'URL via la commande cURL lancée depuis un terminal ?

  7. #7
    Nouveau Candidat au Club
    Alors là c'est trop pour moi lol

    Je fais les tests depuis localhost sur un MAC

    Par le terminal ?

###raw>template_hook.ano_emploi###