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 un header dans un fichier texte avec curl


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Points : 53
    Points
    53
    Par défaut récupérer un header dans un fichier texte avec curl
    Bonjour à tous,
    J'essaye de m'authentifier à une API et rencontre un problème.
    Alors voila l'authentification se passe bien, je créer un fichier texte et dedans écrit le header récupéré pour cette authentification grâce à CURLOPT_WRITEHEADER.
    Voici à quoi cela ressemble à l'intérieur de mon fichier texte :
    HTTP/1.1 200
    Bearer: <N.?|T,*V=bpc&VKU:5wxA%_d2SM;*t@2^2X/<doA7lh(jz}[:co?(j]i1A9?rTzXF9Po9CW[;TPyghw13NROMxN}7<ACreRmrzKk6[<zI9{*rz*@/3Ae$O_Oc|:*L.Nde20*$/Iu$xOb5sZ{eVa@'g=jc=SOU$Ilc.X,NruIwocWq]Rx3H*$Wlk=cvc<vOYg4UcNdkoSYV.pDNG{Uf>~{_QjOc2N%SZv5PWmgw>xaC*r~F;Zi/t|&<?:[dpu-
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block
    Cache-Control: no-cache, no-store, max-age=0, must-revalidate
    Pragma: no-cache
    Expires: 0
    X-Frame-Options: DENY
    Content-Length: 0
    Date: Thu, 16 Jan 2020 14:28:02 GMT
    Maintenant j'aimerai le récupérer pour pouvoir accéder aux autres fonctionnalités de l'API. Voici mon 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
     $curl = curl_init();
     
            //$file_header= fopen('headers.txt', 'r');
            $file_header = file_get_contents('headers.txt');
            curl_setopt_array($curl, array(
                CURLOPT_URL => "http://monUrl",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => array($file_header),
            ));
     
            $response = curl_exec($curl);
            $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
     
            curl_close($curl);
            echo $http_code;
    Cependant cela me renvoie 400. Je ne comprends pas quelqu'un pourrait m'aider ?
    Un grand merci à tous !

  2. #2
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Re bonjour à tous,
    J'ai l'impression avoir réussi à récupérer la ligne du token dans mon fichier texte cependant j'ai toujours une erreur 400. Voici mon nouveau 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
     $token_file = fopen("headers.txt","r");
            $token = fgets($token_file);
            $authorization = "Authorization : Bearer $token";
     
            $curl = curl_init();
     
            curl_setopt_array($curl, array(
                CURLOPT_HTTPHEADER => array('Content-Type: application/json', $authorization,),
                CURLOPT_URL => "monURL qui a besoin du token pour marcher",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
            ));
     
            $auth_response = curl_exec($curl);
            $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
            echo $http_code;

    lorsque je var_dump ma variable $authorization j'obtiens
    string(280) "Authorization : Bearer AuQ$C.pnJezbivu<.Uu[j!R%WxWM2~jvh>(qEAehE<;/WllwCOu=AWE:ru;U:A?3&?E4Um2MfeU,3d.MQJjWUx9P!=>TG&3&1?'RDa-f3@:jD'%!Bc_V#^zkOFTKK_Q0R#04~mg)fI!Ct_$}[p0(FW$6H;/i~9,j+65U~csV7p[]FU55c'p3%n^}P@D-yH+fc?@=6wJ'#J{(>E[Pfa>C2*;9
    Comment puis-je faire pour avec un code 200. J'ai essayé de mettre le token directement dans le code mais ça ne marche pas parce qu'il y a un $ dedans et du coup le code pense qu'il y a une variable dedans du coup j'ai mis un \ devant le Dollard pour pas qu'il soit pris en mode variable mais peut être que ça modifie le token du coup et ça marche pas.
    Ou alors si quelqu'un sait comment je peux récupérer le token dans un string sans faire de fichier texte pour le mettre par exemple dans une variable $_SESSION je suis aussi preneuse...

    Merci pour vos réponses.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2008, 14h23
  2. Réponses: 10
    Dernier message: 23/04/2007, 14h18
  3. [vb6]:Ajuster des données dans un fichier text avec un timer
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 28/07/2006, 12h13
  4. Réponses: 9
    Dernier message: 22/05/2006, 12h21
  5. Réponses: 2
    Dernier message: 16/01/2006, 19h34

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