我正在使用來自提供者的網絡服務,該提供者正在對進行太有助於預測我的需求。他們給了我一個HTML片段來粘貼在我的網站上,供用戶點擊觸發他們的服務。我寧願編寫這個過程的腳本,所以我有一個php腳本,將cURL請求發佈到相同的URL,如適用。但是,此提供程序正在查看我的會話,並將每個新請求解釋爲第一個請求的更新,而不是每個都是唯一的請求。嘗試使用cURL避免ASP.NET會話
關於我的問題,我已經聯繫了提供商,他們竟然告訴我他們的系統按預期工作,並且我不可能避免每個人都使用相同的ASP.NET會話隨後的cURL請求。雖然我最喜歡的選擇是切換到不同的供應商,但目前看來這不是一種選擇。有沒有一種可靠的方式來獲得每個cURL請求的新ASP.NET會話?
我嘗試了以下一組CURLOPT的的,都無濟於事:
//initialize curl
$ch = curl_init($url);
//build a string out of the post_vars
$post_str = http_build_query($post_vars);
//set the necessary curl options
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "UZ_".uniqid());
curl_setopt($ch, CURLOPT_REFERER, CURRENT_SITE_URL."index.php?newsession=".uniqid());
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Pragma: no-cache", "Cache-Control: no-cache"));
//execute the call to the backend script, retrieve the results
$xmlstr = curl_exec($ch);
您是否嘗試過手動將'CURLOPT_COOKIE'設置爲空字符串?或者可能指定'CURLOPT_COOKIEFILE'和'CURLOPT_COOKIEJAR',並在請求之間解除文件鏈接? – grossvogel 2010-08-29 16:03:09