2016-07-15 90 views
1

我有一個簡單的GET請求,我正在嘗試做出並得到結果。我已經在沒有任何標題或身體的郵差中試過它,它工作得很好。我甚至把它放在瀏覽器中,它會返回一個好結果。但是,當我在PHP中執行它時,我什麼也沒有得到。這是我的代碼看起來像。我究竟做錯了什麼?如何使用CURL對PHP執行GET請求

 $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在失敗時返回布爾值false,這會以零長度字符串的形式回顯出來。嘗試'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連接:保持活動內容長度:0 – anton2g

+0

301錯誤的意思是「永久移動」,你應該重定向到響應頭返回位置[位置:http://redirec-location.com/path/] - 發送curl請求到新位置 - 看到響應頭只是啓用跟蹤[此行的評論結束] – Fadakar