【问题标题】:PHP cURL connection refused on localhost本地主机上的 PHP cURL 连接被拒绝
【发布时间】:2017-07-23 09:12:16
【问题描述】:

我正在尝试在 PHP 中对我的本地主机执行 cURL 请求,但出现以下错误:

cURL 错误(7):无法连接到 localhost 端口 8000:连接被拒绝

我尝试在 Google 上搜索此消息,并且在 StackOverflow 上也发现了类似的问题,但似乎没有任何效果。

curl.php:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "localhost:8000/test.php");
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL error (' . curl_errno($ch) . '): ' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

test.php:

echo json_encode(array(
    "message" => "Hello World!"
));

如果我删除“CURLOPT_IPRESOLVE”值,请求将永远无法解析。我还尝试将“CURLOPT_SSL_VERIFYPEER”和“CURLOPT_SSL_VERIFYHOST”都设置为false。还是不行。

但是,如果我在浏览器中导航到 localhost:8000/test.php,我会得到正确的响应。我也可以使用“curl localhost:8000/test.php”命令并收到正确的响应

感谢您的帮助!

【问题讨论】:

  • 如果您使用的是 linux,请确保服务器正在使用 /etc/init.d/httpd status 运行
  • 我正在使用 Windows 和 WAMP。但它显示所有服务都在运行。我也试过重新启动它。同样的问题
  • 使用完整的 URL "localhost:8000/test.php" 和 http://

标签: php curl localhost


【解决方案1】:

您在请求的开头缺少 http://,就像 Rahul Prajapati 在评论中写给您的那样

查看其他帖子 PHP + curl, HTTP POST sample code?

注意这一行使用 curl_setopt($ch, CURLOPT_URL,"http://www.example.com/tester.phtml");

问题是,如果你在浏览器中输入 localhost:8000/test.php,浏览器会默认输入协议,看起来你在进行相同的调用并获得不同的输出

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 2014-05-31
    • 2016-01-27
    • 2015-12-12
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多