Dalam cuba menyambung ke API, mengesahkan pengguna dan mendapatkan butiran pengguna, adalah penting untuk mengekalkan sesi. Ini terbukti sangat mencabar menggunakan Curl, mengakibatkan "ralat tidak dibenarkan" semasa mengakses butiran pengguna. Artikel ini menyelidiki isu asas dan menyediakan penyelesaian.
Untuk membetulkan masalah ini, pastikan anda menetapkan pilihan CURLOPT_COOKIEFILE secara eksplisit. Seperti dalam manual, pilihan ini menentukan laluan ke fail storan kuki. Dengan mengetepikan parameter ini, Curl tidak dapat menghantar sebarang kuki yang disimpan pada permintaan berikutnya, dengan berkesan memutuskan sesi.
Coretan kod berikut menunjukkan cara untuk menetapkan kedua-dua CURLOPT_COOKIEJAR dan CURLOPT_COOKIEFILE:
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); // Store cookies in the file curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE); // Read cookies from the file curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); echo curl_exec ($ch); // Continue accessing the API with the established session // ...
Dengan menyatakan kedua-dua pilihan, Curl boleh mengekalkan sesi dengan berkesan semasa mengambil pengguna butiran, menyelesaikan ralat 401 dan membenarkan akses kepada sumber API.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan \'Ralat Tidak Dibenarkan\' Apabila Menggunakan Curl dan PHP untuk Mengekalkan Sesi API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!