首頁 > 後端開發 > php教程 > 如何保持 Curl 會話處於活動狀態以避免存取 API 時出現 401 未經授權錯誤?

如何保持 Curl 會話處於活動狀態以避免存取 API 時出現 401 未經授權錯誤?

Linda Hamilton
發布: 2024-12-02 09:46:10
原創
771 人瀏覽過

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

使用 Curl 和 PHP 保持會話活動

要連接到 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板