Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 空气污染指数原因;Curl错误:OpenSSL“读取:SSL”错误“系统调用,错误号10054”;_Php_Azure_Curl_Openssl - Fatal编程技术网

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安装程序版本。

以及您可以在以下链接中找到的其他解决方案:


根据我的测试,一切正常

我的环境:

  • 视窗101809
  • PHP 7.3(7.3.11)
  • 卡塞特来自

  • 代码:

    结果:


    暗示

    所以,基本上这部分代码是好的

    正如你所说的,它与宅地、流浪汉和拉维无关。因此,这很可能是一个网络问题。也许您可以尝试重新启动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)