Php 空气污染指数原因;Curl错误:OpenSSL“读取:SSL”错误“系统调用,错误号10054”;
这与Php 空气污染指数原因;Curl错误:OpenSSL“读取:SSL”错误“系统调用,错误号10054”;,php,azure,curl,openssl,Php,Azure,Curl,Openssl,这与宅地或流浪者或laravel无关 我在WindowsAzure服务器上的PHP7.3上运行了一个应用程序服务 下面是我正在运行的与我的cURL调用相关的代码: $resCurl = curl_init(); $url_API = 'https://example.com/api/someMethod'; curl_setopt( $resCurl, CURLOPT_HTTPHEADER, array( 'Content-type: APPLICATION/JSON; CHARSET=U
宅地
或流浪者
或laravel
无关
我在WindowsAzure服务器上的PHP
7.3上运行了一个应用程序服务
下面是我正在运行的与我的cURL
调用相关的代码:
$resCurl = curl_init();
$url_API = 'https://example.com/api/someMethod';
curl_setopt( $resCurl, CURLOPT_HTTPHEADER, array( 'Content-type: APPLICATION/JSON; CHARSET=UTF-8' ) );
curl_setopt( $resCurl, CURLOPT_POSTFIELDS, $jsonRequest );
curl_setopt( $resCurl, CURLOPT_POST, true );
curl_setopt( $resCurl, CURLOPT_URL, $url_API );
curl_setopt( $resCurl, CURLOPT_RETURNTRANSFER, 1);
$resultAPI = curl_exec( $resCurl );
执行此操作时,我会继续生成此错误:
Curl错误:OpenSSL SSL\u读取:SSL\u错误\u系统调用,错误号10054
运行命令提示符,我可以执行php-I
,查看openssl
是否有一个它正在读取的目录以及一个提到的文件:
我已经检查了目录并从这里下载了最新的cacert.pem
文件:
我不想通过将我的CURLOPT_SSL_VERIFYHOST
和CURLOPT_SSL_VERIFYPEER
设置为false来关闭SSL验证来解决此问题
有什么建议吗
更新:
I为CURLOPT\u SSLCERT
和CURLOPT\u SSLCERTTYPE
硬编码选项:
curl_setopt( $resCurl, CURLOPT_SSLCERT, 'D:\home\site\cert\cacert.pem');
curl_setopt( $resCurl, CURLOPT_SSLCERTTYPE, 'PEM' );
现在错误不同了:
无法设置私钥文件:“D:\home\site\cert\cacert.pem”类型
质子交换膜
我将上载私钥,但此公用cacert没有私钥。我已安装版本2.0.2安装程序版本。 以及您可以在以下链接中找到的其他解决方案:
根据我的测试,一切正常 我的环境:
代码: 结果:
暗示 所以,基本上这部分代码是好的 正如你所说的,它与宅地、流浪汉和拉维无关。因此,这很可能是一个网络问题。也许您可以尝试重新启动Azure服务器
更新
经@LatentDenis确认,他最终发现问题是由防火墙引起的,这可以为我们缩小类似问题的范围提供线索。错误
10054
表示“由对等方重置连接”,表示客户端和服务器之间存在某种连接问题。可能被防火墙或路由问题打断。@Drew010您是对的,这是防火墙问题,发布一个答案,如果Jack Jia没有首先找到答案,我将接受。谢谢您的测试,我继续进行,并在最后更新了我的问题-您知道有关生成的新错误的任何信息吗?我意识到了这个问题,我试图访问的资源已阻止我们的IP。如果你修改你的答案,说服务器上的块帐户(防火墙问题),我会接受@LatentDenis你的案例会为其他有类似问题的人指明方向。更新了我的答案。谢谢
$resCurl = curl_init();
$url_API = 'https://example.com/api/someMethod';
$jsonRequest = '{"a":"aaa"}';
curl_setopt( $resCurl, CURLOPT_HTTPHEADER, array( 'Content-type: APPLICATION/JSON; CHARSET=UTF-8' ) );
curl_setopt( $resCurl, CURLOPT_POSTFIELDS, $jsonRequest );
curl_setopt( $resCurl, CURLOPT_POST, true );
curl_setopt( $resCurl, CURLOPT_URL, $url_API );
curl_setopt( $resCurl, CURLOPT_RETURNTRANSFER, 1);
$resultAPI = curl_exec( $resCurl );
$print_r($resultAPI)