[英]curl not sending cookie value
我正嘗試通過發送POST請求讀取登錄后獲得的cookie值。
然后,我想使用Curl將該Cookie值與另一個POST請求一起發送到另一個操作。 但是在發送此消息后,當我嘗試查看所有已發布的標頭時,它的確顯示我已發送任何cookie值。 此值不適用於我發布的URL,因此由於身份驗證而無法訪問信息。 請告訴我我做錯了什么:
$URL1 = "http://www.getinf.com/iconf/user?action=buGroup";
$postfields1 = "device=mapp&type=ajax&name1=ra&cc1=91&min1=90name2=imm&cc2=91&min2=97";
// sends a post request
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL,$URL1);
curl_setopt($ch1, CURLOPT_POST, 1);
curl_setopt($ch1, CURLOPT_COOKIE,'JSESSIONID=199FFF6355DEA87F3D72E692E7514AD2');
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch1, CURLOPT_HEADER,true);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch1, CURLOPT_POSTFIELDS, $postfields1);
$result = curl_exec($ch1);
print_r(headers_list());// displays all post request data
$ret = ReturnVal($result);
print_r(get_headers($URL1, 1)); //
curl_close ($ch1);
那么,此代碼中有什么問題阻止了JSESSIONID值作為cookie值進行訪問?
在php docs中檢查此頁面上的注釋(或搜索“ cookie”):
文檔中未提及的是您必須將CURLOPT_COOKIEJAR設置為CURL句柄的文件才能實際使用cookie,如果未設置,則將不會解析cookie。
CURLOPT_COOKIESESSION用於啟動新的Cookie會話,並忽略所有存儲的Cookie。
從PHP.net:使用CURLOPT_COOKIESESSION = TRUE將其標記為新的cookie“會話”。 它將強制libcurl忽略上一個會話中將要加載的所有“會話cookie” cookie。 默認情況下,libcurl始終存儲和加載所有cookie,無論是否為會話cookie,它們都是獨立的。 會話cookie是沒有有效期限的cookie,並且僅在此“會話”中存在並且存在。
使用:curl_setopt($ ch,CURLOPT_COOKIESESSION,false);
嘗試將CURLOPT_cookie更改為CURLOPT_COOKIE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.