前提・実現したいこと
PHPで、curlを利用して自身のAPIに問い合わせをし、ユーザー情報を取得したいです。
APIの処理中で、$_SESSIONによる認証をもたせています。
ちなみに、現在試しているページはログイン直後のページです。
発生している問題
ブラウザが真っ白な読み込み状態になり、ずっと終わりません。
5分ほど待機してみても読み込み状態が続きました。
クライアント側のネットワークシグナルもなく、サーバー上で何かが行われたままビジーになっているような感じです。
該当のソースコード
php
1foreach ($_COOKIE as $key => $val) { 2 $cookie[] = $key.'='.$val.';'; 3} 4 5echo $cookie[0]; //確認用 6 7$curl = curl_init(); 8 9curl_setopt_array($curl, array( 10 CURLOPT_URL => 'https://XXXXX/api/users', 11 CURLOPT_HTTPHEADER => array( 12 'Cookie: ' . $cookie[0] //テスト段階では確実に1つなので、[0]としています。 13 ) 14)); 15 16$response = curl_exec($curl); 17 18curl_close($curl); 19echo $response;
試したこと
CURLOPT_HTTPHEADERの部分について、
下記のように直書きで、他ユーザーのPHPSESSIDを入れてみたところ、PHPでも正しくレスポンスを受け取れ、読み込みがずっと続くことなく、正常にデータが表示されました。
php
1 CURLOPT_HTTPHEADER => array( 2 'Cookie: PHPSESSID=XXXXXXXXXXXXXXXXXXXXXXXXXX' 3 ),
自身のPHPSESSIDが入った時に、異常が現れるように思います。
一度ログインしてから開発ツールでPHPSESSIDを確認し、そのPHPSESSIDを上記コードのように直書きで書いたものに更新してみて、ページをリロードしてみました。
結果、やはりブラウザが真っ白な読み込み状態になり、ずっと終わりませんでした。
直書きで、わざとPHPSESSIDを間違った値にしてみると、ちゃんとエラーレスポンスが返ってきました。
PHPSESSIDが正しい場合に、異常が発生するようです。
ちなみにpostmanでヘッダー情報を持たせて試したところ、正常にレスポンスを受け取れました。
なにかお分かりになることがありましたら、ご教示いただければと思います。