ホームページ >バックエンド開発 >PHPチュートリアル >API アクセス時の 401 Unauthorized エラーを回避するために Curl セッションを維持するにはどうすればよいですか?

API アクセス時の 401 Unauthorized エラーを回避するために Curl セッションを維持するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-02 09:46:10763ブラウズ

How Can I Keep a Curl Session Alive to Avoid 401 Unauthorized Errors When Accessing APIs?

Curl と PHP でセッションを維持する

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。