使用 cURL 获取当前 session 的 cookie
Grab current session's cookie with cURL
我正在编写一个将 POST 请求发送到 URL 的脚本,实际上我是在 header 中手动发送 cookie。但是如何获取来自当前浏览器 session?
我使用了 tcpdump 和 grep,但这确实是错误的选择:,D
有什么建议吗?
我不会从文件中获取它们,而是从浏览器中获取 session 并且不输入浏览器的 cookie 路径
Curl 可以为您处理;可以选择将 cookie 存储在 cookiejar 中并在后续请求中使用它们。
这是主 curl 站点的示例,它使用文件 cookies.txt 中的 cookie 来设置一些,同时将新的 cookie 存储在新 cookies.txt.
中
http://curl.haxx.se/docs/httpscripting.html#Cookie_Basics
curl --cookie cookies.txt --cookie-jar newcookies.txt http://www.example.com
例如,在进行登录过程时,人们会重复使用 cookie jar 中的 cookie。
我发现 link 现在被 snipplr.com 中的示例破坏了。我将 post 放在这里以供将来参考(归功于所有者):
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (isset($_COOKIE[session_name()])) {
curl_setopt($ch, CURLOPT_COOKIE, session_name().'='.$_COOKIE[session_name()].'; path=/');
}
session_write_close();
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'curl error: '.curl_error($ch);
}
curl_close($ch);
session_start();
我正在编写一个将 POST 请求发送到 URL 的脚本,实际上我是在 header 中手动发送 cookie。但是如何获取来自当前浏览器 session?
我使用了 tcpdump 和 grep,但这确实是错误的选择:,D 有什么建议吗?
我不会从文件中获取它们,而是从浏览器中获取 session 并且不输入浏览器的 cookie 路径
Curl 可以为您处理;可以选择将 cookie 存储在 cookiejar 中并在后续请求中使用它们。
这是主 curl 站点的示例,它使用文件 cookies.txt 中的 cookie 来设置一些,同时将新的 cookie 存储在新 cookies.txt.
中http://curl.haxx.se/docs/httpscripting.html#Cookie_Basics
curl --cookie cookies.txt --cookie-jar newcookies.txt http://www.example.com
例如,在进行登录过程时,人们会重复使用 cookie jar 中的 cookie。
我发现 link 现在被 snipplr.com 中的示例破坏了。我将 post 放在这里以供将来参考(归功于所有者):
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (isset($_COOKIE[session_name()])) {
curl_setopt($ch, CURLOPT_COOKIE, session_name().'='.$_COOKIE[session_name()].'; path=/');
}
session_write_close();
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'curl error: '.curl_error($ch);
}
curl_close($ch);
session_start();