curl
是一个命令行工具,用于通过 URL 协议传输数据。它支持多种协议,如 HTTP、HTTPS、FTP 等。在 PHP 中,curl
函数库允许开发者通过脚本发送 HTTP 请求并处理响应。
curl
。curl
可以执行多种类型的 HTTP 请求,如 GET、POST、PUT、DELETE 等。即使没有文件也会返回 200 的情况通常发生在使用 curl
发送请求时,服务器成功处理了请求但没有返回任何内容。HTTP 状态码 200 表示请求已成功,但响应体可能为空。
curl
客户端可能没有正确设置来检查响应体是否为空。确保检查 curl
响应体是否为空,而不仅仅是状态码。
<?php
$url = "http://example.com/api";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode == 200) {
if (empty($response)) {
echo "Response is empty but status code is 200.";
} else {
echo "Response: " . $response;
}
} else {
echo "Failed with status code: " . $httpCode;
}
curl_close($ch);
?>
CURLOPT_NOBODY
如果目的是仅检查资源是否存在而不需要内容,可以使用 CURLOPT_NOBODY
选项。
<?php
$url = "http://example.com/api";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode == 200) {
echo "Resource exists.";
} else {
echo "Resource does not exist or another error occurred. Status code: " . $httpCode;
}
curl_close($ch);
?>
通过这种方式,可以更准确地判断请求的结果是否符合预期,而不仅仅是依赖 HTTP 状态码。
领取专属 10元无门槛券
手把手带您无忧上云