Cake3に用意されてるHttp Clientのクラスを使ってAPIとの通信をしようと考えていました。
設定はこんな感じで〜って言われて、
任せろみたいなことを言いました。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
初めてだったのでここで見ながら書き換えて
PHP マニュアル cURL 関数
http://php.net/manual/ja/function.curl-setopt.php
こんな感じに書きました!(失敗作)
失敗
$option = [
'timeout' => 5,
'ssl_verify_peer' => false,
'ssl_verify_host' => false,
'auth' => [
'username' => 'username',
'password' => 'password',
]
];
$http = new Client($option);
$url = 'ponpon.com';
$request = ['animal'=>'tanuki'];
$response = $http->post($url, $request, $option);
ずっとSSL通信でfopen(): Peer certificateってでる…これfalseしたでしょ…
なんでだろうってコード見に行ったら「ssl_verify_peer_name」がデフォルトでtrueになってました。
……「ssl_verify_peer」がfalseでも「ssl_verify_peer_name」はtrueに…そうか…わかった…
'ssl_verify_peer_name' => falseの記述増そう。。。
成功
$option = [
'timeout' => 5,
'ssl_verify_peer' => false,
'ssl_verify_peer_name' => false,
'ssl_verify_host' => false,
'auth' => [
'username' => 'username',
'password' => 'password',
]
];
$http = new Client($option);
$url = 'ponpon.com';
$request = ['animal'=>'tanuki'];
$response = $http->post($url, $request, $option);
これで動きました。