2016-07-15 4 views
1

J'ai une simple requête GET que j'essaie de faire et de récupérer les résultats. Je l'ai essayé dans Postman sans aucun en-tête ou corps et cela fonctionne très bien. Je l'ai même mis dans mon navigateur et ça renvoie un bon résultat. Mais, quand je le fais en PHP, je ne reçois rien. C'est à quoi ressemble mon code. Qu'est-ce que je fais mal?Comment faire une requête GET sur PHP en utilisant CURL

 $curl = curl_init(); 

     curl_setopt($curl,CURLOPT_URL,'http://********/vizportal/api/web/v1/auth/kerberosLogin'); 
     curl_setopt($curl,CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($curl, CURLOPT_POST, 0); 
     curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, '20'); 

     $resp = curl_exec($curl); 

     echo $resp; 
+1

vous êtes juste en supposant rien échoué. curl_exec renvoie boolean false en cas d'erreur, qui se répercuterait en tant que chaîne de longueur nulle. essayez 'if ($ resp === false) {die (curl_error ($ curl)); } ' –

+0

Je reçois un écho de rien et j'attends une réponse JSON simple. – anton2g

+0

Essayez d'ajouter 'var_dump (curl_error ($ curl));' à la fin et voyez si vous obtenez quelque chose. Aussi, pourquoi passez-vous le timeout comme une chaîne? –

Répondre

0

utiliser cet en-tête pour envoyer en-tête comme navigateur au serveur:

$curl = curl_init('http://********/vizportal/api/web/v1/auth/kerberosLogin'); 
curl_setopt($curl, CURLOPT_POST, 0); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, '20'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
//  curl_setopt($curl, CURLOPT_HEADER, true); 
//  curl_setopt($curl, CURLINFO_HEADER_OUT, true); // enable tracking 

curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 
    'Accept-Encoding:gzip, deflate, sdch', 
    'Accept-Language:en-US,en;q=0.6', 
    'Cache-Control:max-age=0', 
    'Connection:keep-alive', 
    'Host:www.********.tld ', // for example : www.google.com 
    'Referer: http://********/vizportal/api/web/v1/auth/kerberosLogin', 
    'Upgrade-Insecure-Requests:1', 
    'User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36', 
)); 

$response = curl_exec($curl); 
curl_close($curl); 
+0

Je ne pourrais pas obtenir ceci pour fonctionner. Bien que, j'obtiens maintenant cette erreur: HTTP/1.0 302 trouvé Emplacement: https: // ********/vizportal/api/web/v1/auth/kerberosLogin Serveur: connexion BigIP: Keep-Alive Content-Length : 0 – anton2g

+0

301 erreur signifie "déplacé en permanence", vous devez rediriger pour retourner l'emplacement de l'en-tête de la réponse [emplacement: http://redirec-location.com/path/] - envoyer la requête curl à un nouvel emplacement - pour voir l'en-tête de réponse juste activer suivi [commentaire fin de la ligne] – Fadakar