我的服务器上有一个简单的PHP Web服务。
我可以使用以下代码连接到此服务而没有任何错误(我删除了我们的域名):
$service_url = '*** ADDRESS REDACTED! *** /getroomsforcategories.php';
$curl = curl_init();
$curl_post_data = array(
"categoryids" => 1
);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_URL,$service_url."?categoryids=1");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . "/cacert.pem");
$curl_response = curl_exec($curl);
if ($curl_response===false)
echo "<p>Error ".curl_errno($curl)." - ".curl_error($curl);
else
{
echo "<pre>The CURL information: \n";
print_r(curl_getinfo($curl));
echo "The response using cURL was: \n";
print_r($curl_response);
echo "</pre>";
curl_close($curl);
}
我没有得到任何错误,它似乎连接得很好(返回HTTP代码200)。
卷曲信息显示如下:
Array
(
[url] => *** REDACTED *** /getroomsforcategories.php?categoryids=1
[content_type] => text/html
[http_code] => 200
[header_size] => 348
[request_size] => 120
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.125
[namelookup_time] => 0
[connect_time] => 0
[pretransfer_time] => 0.109
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 0.125
[redirect_time] => 0
[certinfo] => Array
(
)
[redirect_url] =>
)
但是,卷曲响应完全是空的。
Web服务本身运行良好 - 它通过AJAX使用jQuery在整个软件中调用,并且运行良好。
关于我遗失的事情的任何想法?
答案 0 :(得分:0)
注意,HTTP状态代码与返回的正文的内容长度无关。您可能有一个HTTP 200 ...但内容长度为0(这似乎是这种情况?“download_content_length”为0)。
您是否在服务器端检查过这里可能出现的问题? (哦,因为我认为这是通过SSL,你可能想把'CURLOPT_SSL_VERIFYPEER'设置为false,只是为了看看这是否是卷曲无法验证证书的问题)