簡體   English   中英

卷曲不發送cookie值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM