php - 连接到第三方域:端口不在实时服务器上工作,但在本地主机、邮递员(网络、应用程序)和终端上工作
问题描述
我正在使用 php curl 连接到第 3 方 API,在 localhost 上它工作正常并且已成功连接。但使用相同的代码,它返回失败:实时服务器上的连接被拒绝。
$url = "http://suitefleetdms.com:8246/api/authenticateweb";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
$verbose = fopen('php://temp', 'w+');
curl_setopt($curl, CURLOPT_STDERR, $verbose);
$headers = array(
"Content-Type: application/json",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = '{"username":"cbs.dev@transcorp-intl.com","password":"MY_REAL_PASSWORD"}';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$resp = curl_exec($curl);
rewind($verbose);
$verboseLog = stream_get_contents($verbose);
echo "Verbose information:\n<pre>", htmlspecialchars($verboseLog), "</pre>\n";
我尝试连接此域:端口来自
- 带有命令的终端
curl -v https://suitefleetdms.com:8246/api/authenticateweb
{预期响应代码 404,因为缺少正文,但这里关注的是建立连接} - 邮递员(基于 Web 和 MacOS 上的应用程序),它连接成功。
- MacOS终端,连接成功
- 本地主机上的 PHP cURL(macOS BigSur 11.1 PHP 版本 7.4.1 上的 xampp),它连接成功
但是,每当我在实时服务器上运行相同的 PHP cURL 代码时,它都会返回连接被拒绝。PHP 版本 7.4.21
附上所有截图
终端macOS上的邮递员应用程序邮递员web
php curllocalhost
他们的 API 文档在这里
解决方案
推荐阅读
- python - 当我导出到 cvs 时,Pandas 正在引用我的 Datetime 列,但我想引用所有剩余的列
- laravel - 无法在 vue 上将数据显示到输入表单中?
- html - 如何让我的社交媒体栏在鼠标滚轮滚动的同时放大和缩小?
- c# - 在 .Net Core MVC 中,当重复代码以在 dbcontext 中执行相同操作时,这是否被认为是不好的做法?
- angular - 打字稿非空数组返回长度为零
- python - 如何使用Python在Win10中创建重启对话框
- javascript - 在 D3 中删除小倍数上不需要的轴
- python - 是否有将 py 文件转换为 apk 的模块?
- python - 如何让基于 Python 的 Discord Bot 随机播放不同的声音?
- python - 如何使用 Python 获取上周五的日期?