要连接到 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中文网其他相关文章!