首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板