Consistently getting a status of 0 even though if I copy and paste the url sent into my browser, I get a json object right back
<?php
$mainUrl = "https://api.xxxx.com/?";
$co = "xxxxx";
$pa = "xxxx";
$par = "xxxx";
$part= "xxxx";
$partn = "xxxx";
$us= "xxx";
$fields_string;
$fields = array(
'co'=>urlencode($co),
'pa'=>urlencode($pa),
'par'=>urlencode($par),
'part'=>urlencode($part),
'partn'=>urlencode($partn),
'us'=>urlencode($us)
);
foreach($fields as $key=>$value) { $fields_string .= $key . '=' . $value . '&' ;}
$fields_string = rtrim($fields_string, "&");
$fields_string = "?" . $fields_string;
$url = "https://api.xxxxx.com/" . $fields_string;
$request = $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT,'3');
$content = trim(curl_exec($ch));
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
print $url;
print $http_status;
print $content;
?>
Realized that I was having SSL issues. Simply set CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST to false. Works.
FYI, you can also get a status code of 0 if the curl connection times out before the remote server returns data. In that case you need to set curl time out options to avoid that situation. Just posting this for anyone else having status 0 problems.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With