2016-07-15 91 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