Php 如何在Guzzle 5中忽略无效的SSL证书错误

Php 如何在Guzzle 5中忽略无效的SSL证书错误,php,ssl,curl,guzzle,Php,Ssl,Curl,Guzzle,这应该是一件容易做到的事情。我可以找到很多关于如何在Guzzle 3中实现这一点的参考资料,但它们在Guzzle 5中不起作用 到目前为止,我正在做的是: $this->client = new GuzzleClient(['defaults' => [ 'verify' => 'false' ]]); 当我发送请求时,尽管我收到了以下错误: RequestException in RequestException.php line 51: SSL CA bundle

这应该是一件容易做到的事情。我可以找到很多关于如何在Guzzle 3中实现这一点的参考资料,但它们在Guzzle 5中不起作用

到目前为止,我正在做的是:

$this->client = new GuzzleClient(['defaults' => [
    'verify' => 'false'
]]);
当我发送请求时,尽管我收到了以下错误:

RequestException in RequestException.php line 51:
SSL CA bundle not found: false
我在谷歌上找不到任何关于这个错误的有用参考资料。如果我可以访问curl选项,那么我可以尝试下面建议的解决方案(这是针对Guzzle 3的,因此它不起作用):,其中的相关部分是:

$req->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST, false);
$req->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER, false);
你应该使用

$this->client = new GuzzleClient(['defaults' => [
    'verify' => false
]]);
i、 e.布尔值false,而不是字符串“false”

文件如下:


注意:一些人给出了适用于Guzzle 6+的其他答案。如果您正在使用这些版本,它们是很好的答案(但最初的问题是关于Guzzle 5的明确问题)。

尝试使用最新版本:

$this->client = new GuzzleClient(['base_uri' => 'https://api.example.com/', 'verify' => false ]);
或更简单的版本:

    $this->client = new GuzzleClient(['verify' => false ]);

使用版本6.2-dev.

进行测试,实际版本是正确的:

$this->client = new GuzzleClient(['verify' => false ]);
在2018年,这不起作用:

$this->client = new GuzzleClient(['defaults' => [
    'verify' => false
]]);

好吧,显然我只是不擅长看文件。最终发现:
默认值
实际上不是Guzzle 5客户端配置的一部分。您应该使用:$this->client=newguzzleclient(['verify'=>false]);文档页面略微更改为:为了澄清,此答案是针对Guzzle 5(问题中提到的版本),它确实具有默认值(请参阅)。