php - 标头中的多个 set-cookies 相互重写 curl
问题描述
如果响应头包含两个Set-Cookie
值,如示例中所示:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-AspNet-Version: 2.0.50727
Set-Cookie: ASP.NET_SessionId=***; path=/; HttpOnly
X-Powered-By: ASP.NET
Date: Sat, 12 Sep 2020 15:26:07 GMT
Content-Length: 14713
Set-Cookie: BIGipServerauto-ext-vla216-pool=***; path=/; Httponly
,然后带参数
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
由于覆盖,cUrl 将仅写入最后一个文件。
有没有更好的方法,然后手动读取标题并通过 写入文件file_put_contents
,为这种情况存储多个 cookie?
解决方案
Curl 确实接受来自不同Set-Cookie
标头的 cookie。
看一下文档:
https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEFILE.html
CURLOPT_COOKIEFILE - 从中读取 cookie 的文件名
https://curl.haxx.se/libcurl/c/CURLOPT_COOKIEJAR.html
CURLOPT_COOKIEJAR - 存储 cookie 的文件名
推荐阅读
- mongodb - 如何一次从多个 Mongo 集合中查询(查找)并组合结果
- javascript - 在 componentDidMount() 中使用 React.setState 获取嵌套承诺中返回的数据?
- python - Pyppeteer 在 AWS Lambda 上运行时无法下载无头 chrome
- javascript - 为什么在 javascript 中包装函数会导致递归和堆栈溢出错误?
- android-layout - Android:RecyclerView 的 CardView 每次都不显示
- reactjs - 当组件离开视图时如何使用异步等待
- python - 熊猫的每周平均值
- azure-devops - 将多个 Azure Devops 项目移动到一个项目中(同一组织)
- c++ - 为什么我的结果中有 0?我不知道它来自哪里
- c# - 什么是 .NET Core 共享框架?