2016-07-15 2 views
1

У меня есть простой запрос GET, который я пытаюсь сделать и получить результаты. Я пробовал его в Postman без каких-либо заголовков или тела, и он работает отлично. Я даже положил его в свой браузер, и он возвращает хороший результат. Но, когда я делаю это в PHP, я ничего не получаю. Вот как выглядит мой код. Что я делаю не так?Как сделать запрос GET на PHP с использованием 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

вы не только при условии, ничего не получилось. curl_exec возвращает boolean false при сбое, который будет выводиться как строка с нулевой длиной. try 'if ($ resp === false) {die (curl_error ($ curl)); } ' –

+0

Я получаю эхо от ничего, и я ожидаю простой ответ JSON. – anton2g

+0

Попробуйте добавить 'var_dump (curl_error ($ curl));' до конца там и посмотреть, получаете ли вы что-нибудь. Кроме того, почему вы передаете таймаут в виде строки? –

ответ

0

использовать этот заголовок для отправки заголовка, как браузер на сервер:

$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

Я не мог заставить это работать. Хотя, теперь я получаю эту ошибку: HTTP/1.0 302 Найдено: https: // ********/vizportal/api/web/v1/auth/kerberosLogin Сервер: BigIP Connection: Keep-Alive Content-Length : 0 – anton2g

+0

301 ошибка означает «Перемещено навсегда», вы должны перенаправить на возврат местоположения из заголовка ответа [location: http://redirec-location.com/path/] - отправить запрос на завивание в новое местоположение - чтобы увидеть ответный заголовок, просто включите отслеживание [конец комментария этой строки] – Fadakar