我正在使用cURL从网站获取数组。 它在localhost上可以完美运行,但是当我将其上传到Server时它返回NULL。 这是我的代码:
$curl = curl_init();
$url = "http://staging.quran.com:3000/api/v3/chapters?language=en";
curl_setopt_array($curl, array(
CURLOPT_PORT => "3000",
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "{}",
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE)
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
注意:它仅对此网址无效 它可以与其他所有网址(例如Google.com等)一起使用
这意味着我的服务器的cURL请求已启用!
任何人都可以帮助我!!
答案 0 :(得分:0)
如果我没记错的话,请尝试使用var_dump($response)
代替echo $response;
,$response
是一个json对象而不是字符串。
答案 1 :(得分:0)
转到以下stackoverflow链接 Curl request not working on live server
检查您请求的服务器是否阻止了来自服务器的请求。尝试从服务器的外壳程序ping通该服务器(http://staging.quran.com:3000/api/v3/chapters?language=en)
答案 2 :(得分:0)
您的代码没有问题,此外,当访问其他网站时,它在localhost和服务器上都可以正常工作。
确保服务器允许在端口3000
上的传出连接我很确定问题就在这里。