我正在处理一个向URL发送POST请求的脚本,实际上我是在标题中手动发送cookie但是如何从当前的浏览器会话中获取它?
我使用了tcpdump和grep,但它确实是错误的选择:D 一些建议?
我不会从文件中获取它们,而是从浏览器会话中获取它们而不输入浏览器的cookie路径
答案 0 :(得分:6)
Curl可以为你处理;可以选择将cookie存储在cookiejar中,并在后续请求中使用它们。
以下是主卷曲网站的示例,它使用来自文件cookies.txt的cookie来设置一些,同时在newcookies.txt中存储新的cookie。
http://curl.haxx.se/docs/httpscripting.html#Cookie_Basics
curl --cookie cookies.txt --cookie-jar newcookies.txt http://www.example.com
例如,在进行登录过程时,可以重复使用来自cookie jar的cookie。
答案 1 :(得分:0)
我发现了一个链接,现在已经破了一个来自snipplr.com的例子。我将在此发布以供将来参考(对所有者的信用):
$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();