我正在尝试从我的Yii应用程序调用外部API
$client = new Client();
$response = $client->createRequest()
->setMethod('POST')
->setUrl('https//externalApi')
->setData(['name' => 'John Doe', 'email' => 'johndoe@example.com'])
->send();
if ($response->isOk) {
var_dump($response);
}
但是我得到:
HTTP Client Exception: fopen(): Peer certificate CN=`****' did not match expected CN=`****'
我想这和SSL证书有关。是否有办法忽略验证?
我找到了解决方案,您需要设置选项以禁用SSL前缀的SSL检查,所以这样做请求:
$client = new Client();
$response = $client->createRequest()
->setMethod('POST')
->setUrl('https//externalApi')
->setData(['name' => 'John Doe', 'email' => 'johndoe@example.com'])
->setOptions([
'sslallow_self_signed' => true,
'sslverify_peer_name' => false,
])
->send();
if ($response->isOk) {
var_dump($response);
}