Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengekalkan Sesi Curl Hidup untuk Mengelakkan 401 Ralat Tanpa Kebenaran Semasa Mengakses API?
Untuk menyambung ke API, mengesahkan pengguna dan melihat butiran pengguna, anda mesti log masuk dahulu dan mendapatkan kuki sesi . Walau bagaimanapun, apabila menggunakan Curl, anda mungkin menghadapi ralat 401 yang tidak dibenarkan semasa cuba mengakses butiran pengguna. Ini berlaku kerana Curl perlu mengekalkan kuki sesi untuk membolehkan komunikasi antara titik akhir yang berbeza.
Kod yang diberikan melencong ke titik akhir log masuk dan menyimpan balang kuki. Walau bagaimanapun, untuk menghantar bersama kuki yang disimpan pada permintaan seterusnya, anda juga mesti menetapkan CURLOPT_COOKIEFILE ke balang kuki yang sama. Ini akan memberikan Curl maklumat yang diperlukan untuk mengekalkan sesi dan berjaya mendapatkan butiran pengguna.
Kod yang diperbetulkan adalah seperti berikut:
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);
Dengan menambahkan CURLOPT_COOKIEFILE, Curl kini akan mengekalkan sesi kuki dan berjaya mengakses butiran pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Sesi Curl Hidup untuk Mengelakkan 401 Ralat Tanpa Kebenaran Semasa Mengakses API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!