ホームページ >バックエンド開発 >PHPチュートリアル >API アクセス時の 401 Unauthorized エラーを回避するために Curl セッションを維持するにはどうすればよいですか?
API に接続し、ユーザーを認証し、ユーザーの詳細を表示するには、まずログインしてセッション Cookie を取得する必要があります。ただし、Curl を使用する場合、ユーザーの詳細にアクセスしようとすると 401 不正エラーが発生する可能性があります。これは、Curl が異なるエンドポイント間の通信を可能にするためにセッション Cookie を維持する必要があるために発生します。
コードはログイン エンドポイントに Curs を提供し、Cookie jar を保存します。ただし、保存された Cookie を後続のリクエストで送信するには、CURLOPT_COOKIEFILE を同じ Cookie jar に設定する必要もあります。これにより、セッションを維持し、ユーザーの詳細を正常に取得するために必要な情報が Curl に提供されます。
修正されたコードは次のとおりです。
define("COOKIE_FILE", "cookie.txt"); // Login the user $ch = curl_init('http://api.example.com/login/joe/smith'); curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); echo curl_exec ($ch); // Read the session saved in the cookie file echo "<br /><br />"; $file = fopen("cookie.txt", 'r'); echo fread($file, 100000000); echo "<br /><br />"; // Get the users details $ch = curl_init('http://api.example.com/user'); curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); **curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE);** // **Set the cookie file** curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); echo curl_exec ($ch);
CURLOPT_COOKIEFILE を追加することで、Curl はセッションを維持するようになります。 Cookie を使用してユーザーの詳細にアクセスできます。
以上がAPI アクセス時の 401 Unauthorized エラーを回避するために Curl セッションを維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。