我最近将我的项目从localhost上传到了一个实时托管服务器。在我的项目中,我使用了一个CURL请求,直到现在才能在localhost上完全正常工作。
只要我在实时服务器(Arizonawebservices.com)上移动它,该CURL请求就会停止工作。当我的页面发送CURL请求时,它会继续处理并且永远不会返回任何输出。
我检查了服务器的CURL支持(在PHP的exec()函数中使用“which curl”命令),是的,它启用了CURL支持。
还创建了一个测试页面,用于手动拍摄CURL请求并检查它是否正常工作。尝试www.google.com,www.yahoo.com和许多其他网址,一切正常,但当我将原始API网址“https://dataviz.sandbox.rcoanalytics.com:10105/oauth/token”放入其中时。它开始表现得像以前一样。我完全无法从CURL请求中得到任何响应。任何帮助将不胜感激。
使用以下代码进行测试:
function httpPost($url,$params)
{
$postData = '';
if (!empty($params)) {
//create name value pairs seperated by &
foreach($params as $k => $v)
{
$postData .= $k . '='.$v.'&';
}
$postData = rtrim($postData, '&');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if ($postData != "") {
curl_setopt($ch, CURLOPT_POST, count($postData));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
}
$output=curl_exec($ch);
if($output === false)
{
echo "Error Number:".curl_errno($ch)."<br>";
echo "Error String:".curl_error($ch);
}
curl_close($ch);
return $output;
}
$params = array(
);
echo httpPost("https://dataviz.sandbox.rcoanalytics.com:10105/oauth/token", $params);