php - 无法连接主机:80:超时 cURL php
问题描述
我有两个应用程序。一个是 PHP,另一个是 Laravel 应用程序,两者都驻留在不同的服务器上。我想将数据从 PHP 应用程序发送到 Laravel 应用程序,我正在使用 cURL 执行此操作。但它抛出“连接失败:超时”错误。
这就是我使用 POST 使用 cURL 发送 json 数据的方式:
$url ='http://host_name/project/public/index.php/login';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$userdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
if (curl_error($ch)) {
$error_msg = curl_error($ch);
}
echo $error_msg."<br>";
print_r(curl_getinfo());
我得到的输出是:
Failed to connect to host_name port 80: Timed out
[url] => http://host_name/project/public/index.php/login
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 20.234
[namelookup_time] => 0.015
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[redirect_url] =>
[primary_ip] =>
[certinfo] => Array
(
)
[primary_port] => 0
[local_ip] =>
[local_port] => 0
)
解决方案
这可能是防火墙问题。可能是默认情况下阻止了端口 80。也许将您的请求更改为 https 它应该可以解决问题。或者如果失败,请尝试将其放入您的 curl 请求 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)
如果这也失败了,那么您需要查看防火墙。
推荐阅读
- c# - 调试模式下的 TPL 问题,在发布模式下一切正常
- python - Python - 带有辅助轴的绘图 - 具有 2 个变量的函数
- r - 否决 ggplot2 中的配色方案,以在用颜色编写的代码上强制黑白
- kql - Kusto 查询记录之间的时间差
- selenium - Selenium Grid 节点无法通过 VPN 注册到 HUB
- reactjs - React 突然响应 index.html 而不是 javascript 导入
- google-api-python-client - 获取所有 gmail 帐户 python 的驱动器使用情况
- python - 在熊猫 groupby 中返回第一个日期
- python - 用python绘制内存图像视图
- javascript - express.json() is an unknown property