Php CURLOPT_COOKIEFILE不附加Cookie头

Php CURLOPT_COOKIEFILE不附加Cookie头,php,curl,Php,Curl,我在运行OS X Lion的Mac上使用MAMP 我需要连接到发送cookie的远程站点。 除了饼干部分,一切都很顺利。 对于cookie部分,我使用以下代码: $cookieFile = dirname(__FILE__).'/cookie.txt'; curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); CURLOPT_COOKIEJAR部

我在运行OS X Lion的Mac上使用MAMP

我需要连接到发送cookie的远程站点。 除了饼干部分,一切都很顺利。 对于cookie部分,我使用以下代码:

$cookieFile = dirname(__FILE__).'/cookie.txt';
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); 
CURLOPT_COOKIEJAR部分确实创建了一个cookie,但在后续请求中,CURLOPT_COOKIEFILE不会添加cookie头。我已经使用HTTPScoop(一个类似小提琴的工具)检查了这个问题

知道有什么问题吗

编辑: 我正在连接到ASP.Net站点。问题似乎是im没有获得ASP.NET_会话ID cookie。我得到的cookie有一个没有值的键,这可能就是它没有被发布的原因。
知道如何强制服务器发送会话cookie吗?

我们确实需要看更多的代码,但这里有一个示例,它从初始请求收集会话cookie,然后在后续文章中使用它。它使用匿名代理在任意URL上运行GET请求,希望它对您有所帮助(尽管它没有使用COOKIEJAR,但我觉得它可能仍然有用)


CURLOPT_COOKIEJAR部分确实创建了一个cookie
-您确认创建的文件实际上包含一个cookie值并且不是空的吗?你能从第一个请求的响应头确认存在
Set Cookie
头吗?检查,Cookie被创建,内容反映了头的值。然后我有点不知所措,您是否愿意发布更完整的代码,或者您试图访问的网站的URL,以便我可以尝试?如果我将其更改为google.com,它确实会发送cookie,因此我可能需要深入了解我的配置。现在是Thanx。帮助代码,Thanx。我的问题是我没有完全模仿登录请求中发布的值。之后,我修复了一个填充会话cookie的设置,并在随后的帖子中发布。
<?php
define('TARGET_URL', 'http://moxune.com');
echo 'Sending initial request' . PHP_EOL;
$aHeaders = get_headers("http://420proxy.info");

foreach($aHeaders as $sHeader) {
    if(stripos($sHeader, 'set-cookie') !== false) {
        // extract the cookie from the first response
        $aCookie = explode(':', $sHeader);
        $sCookie = trim(array_pop($aCookie));
        $oCookie = http_parse_cookie($sCookie);

        echo 'Cookie extracted, trying to POST now' . PHP_EOL;

        // OK, now let's try the POST request
        $ch = curl_init('http://420proxy.info/includes/process.php?action=update');
        curl_setopt($ch, CURLOPT_REFERER, '420.proxy.info');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_COOKIE, $sCookie);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

        curl_setopt($ch, CURLINFO_HEADER_OUT, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect: 100-continue'));

        //curl_setopt($ch, CURLOPT_COOKIE, http_build_cookie((array)$oCookie));
        curl_setopt($ch, CURLOPT_POSTFIELDS, array(
            'u' => TARGET_URL,
            'allowCookies' => 'off',
            'encodeURL' => 'off',
            'stripJS' => 'on'
            )   
        );  

        $response = curl_exec($ch);

        die(var_dump($response));
    }   
}