Récupérer l'en-Tête de PHP cURL réponse
Je suis nouveau en PHP. J'essaie de l'en-Tête de la réponse après l'envoi de l'php curl requête POST. Le client envoie la requête au serveur et le serveur envoie la réponse avec en-Tête. Voici comment j'ai envoyé ma requête POST.
$client = curl_init($url);
curl_setopt($client, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($client, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($client, CURLOPT_HEADER, 1);
$response = curl_exec($client);
var_dump($response);
Voici l'en-Tête de réponse du serveur que je reçois depuis le navigateur
HTTP/1.1 200 OK
Date: Wed, 01 Feb 2017 11:40:59 GMT
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2Vycy9CYW9CaW5oMTEwMiIsIm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMTIzNCJ9.kIGghbKQtMowjUZ6g62KirdfDUA_HtmW-wjqc3ROXjc Content-Type: text/html;charset=utf-8 Transfer-Encoding: chunked Server: Jetty(9.3.6.v20151106)
Comment puis-je extraire la partie Autorisation de l'en-Tête ?. J'ai besoin de le stocker dans les cookies
Utiliser, par exemple, php.net/manual/en/function.preg-match.php
Exploser les en-têtes par des sauts de ligne, exploser chaque ligne par
Cela peut être utile: stackoverflow.com/a/11659510/297243
Nous ne sommes pas autorisés à re-poster des réponses merci donc de voir ma réponse ici: stackoverflow.com/a/54925124/3897214
Exploser les en-têtes par des sauts de ligne, exploser chaque ligne par
:
, vérifier les en-tête est nommé "Authorization"
, prendre sa valeur.Cela peut être utile: stackoverflow.com/a/11659510/297243
Nous ne sommes pas autorisés à re-poster des réponses merci donc de voir ma réponse ici: stackoverflow.com/a/54925124/3897214
OriginalL'auteur Tuan Dinh | 2017-02-01
Vous devez vous connecter pour publier un commentaire.
Il convertit tous les en-têtes dans un tableau
Notice: Undefined offset: 1
. Je vais suggérer une modification pour examen.Mon montage a été rejetée comme @user75ponic estime qu'il est "superflu". Désolé, mais il se trompe. @Thamaraiselvam Que mon commentaire précédent a déclaré, votre code ne prend pas en compte pour la fuite des retours à la ligne qui, souvent, n'existent que dans la tête des retours. L'existence d'une fuite de saut de ligne sont les causes de ce code de briser entièrement. Utilisation
rtrim($output)
pour résoudre ce problème. Vous pouvez aussi ne pas traiter les valeurs nulles à tous et vous recevrez PHP en garde un en-tête contient une valeur null, encore une fois, une possibilité. Vous pouvez gérer cela de la sorte:if ( !isset($middle[1]) ) { $middle[1] = null; }
.Je vais vérifier et faire les changements nécessaires +1
Je suggère également de remplacer $milieu=explode(":",$part); $milieu=explode(":",$partie 2); parce que certains en-têtes contiennent caractère": "(position par exemple), et la partie après le ":" seront perdues.
OriginalL'auteur Thamaraiselvam
Pour la première réponse, notez que le code:
va produire de mauvais résultats avec des données de chaîne contenant
:
, comme par exemple:Le code correct pour diviser les champs pour construire le tableau serait comme:
OriginalL'auteur myHealthbox Admin
Vous suffit d'inclure ce codage dans votre demande curl
après votre curl exécution utilisation
$header_data= curl_getinfo($curl_exec);
Ensuite, vous obtenez tous les en-têtes
ou utiliser le shell_exec
OriginalL'auteur karthikeyan ganesan