要連接到 API、驗證用戶身份並查看用戶詳細信息,您必須先登入並獲取會話 cookie 。但是,使用 Curl 時,嘗試存取使用者詳細資訊時可能會遇到 401 未經授權的錯誤。發生這種情況是因為 Curl 需要維護會話 cookie 以啟用不同端點之間的通訊。
提供的程式碼捲曲到登入端點並保存 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 並成功存取使用者詳細資料。
以上是如何保持 Curl 會話處於活動狀態以避免存取 API 時出現 401 未經授權錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!