设置CURLOPT_COOKIEFILE会使curl下一次发请求时从指定的文件中读取cookie。
设置CURLOPT_COOKIEJAR会使curl在调用 curl_easy_cleanup的时候把cookie保存到指定的文件中。
设置CURLOPT_COOKIELIST会把指定的cookie字符串列表加入easy handle维护的cookie列表中。每个cookie字符串要么符合HTTP response header的"Set-Cookie: NAME=VALUE..."格式,CURLOPT_COOKIE用于设置一个分号分隔的“NAME=VALUE”列表,用于在HTTP request header中设置Cookie header。
用 CURLOPT_HTTPHEADER 把那个 COOKIE 加上就可以了。首先你得检查使用 CURLOPT_COOKIEJAR 后,是否保存了 COOKIE,注意只有调用了 curl_easy_cleanup 后才会保存。其次,在使用 CURLOPT_COOKIEFILE 时,你需要检查读取的文件中是否有 COOKIE 信息,你可以进入源码调试下,在处理 CURLOPT_COOKIEFILE 时,libcurl 是否读取到了你设置的 COOKIE。
另外 HTTP Response Header 中的 Expires 跟 SESSION 无关,它是用来表示响应的缓存有效期的。
使用curlCURLOPT_COOKIE 设定HTTP请求中"Cookie: "部分的内容。多个cookie用分号分隔,分号后带一个空格(例如, "fruit=applecolour=red")。
CURLOPT_COOKIEFILE 包含cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者只是纯HTTP头部信息存入文件。
CURLOPT_COOKIEJAR 连接结束后保存cookie信息的文件。
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, $url) // 请求的地址
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiesfile) // 连接结束后保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiesfile) // 请求时发送的cookie信息文件
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)
curl_exec($ch)
curl_close($ch)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)