Mam duży problem z poberaniem sesji przez curl. Mam 2 requesty pierwszy zbiera sesję, drugi wykonuje zapytanie w post (który wymaga sesji).
Problem w tym, że ten pierwszy nie pobiera mi poprawnie sesji. Gdy odpalam stronę przez curl, w headerze strony wyrzuca mi atrybut np."Set-Cookie: JSESSIONID=07tP-hXzHurc-bL9bpOvVzmK; Path=/; HttpOnly", później gdy wrzucam go jako sesję w drugim curlu to strona wyrzuca mi "<partial-response>". Po każdym odświeżeniu strony JSESSIONID zmienia wartość.
W momencie jednak, gdy kopiuje sesję z przeglądarki wszysko śmiga. Starałem się dopisywać atrybuty jak leci i dalej nic. Jak sprawić, żeby strona poprawnie utworzyła sesję?
Pierwszy curl wyglada tak:
Kod
$chh = curlinit();
curlsetopt($chh, CURLOPT_URL, $strona);
curl_setopt($chh, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($chh, CURLOPT_COOKIEJAR, $tmpfname);
curl_setopt($chh, CURLOPT_COOKIEFILE, $tmpfname);
curl_setopt($chh, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($chh, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($chh, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($chh, CURLOPT_VERBOSE, 1);
curl_setopt($chh, CURLOPT_COOKIESESSION, 1);
curl_setopt($chh, CURLOPT_HEADER, 1);
$header_size = curl_getinfo($chh, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$exp = explode("Set-Cookie:", $header);
$sesja = explode("; Path=/; HttpOnly", $exp[1]);
curlsetopt($chh, CURLOPT_URL, $strona);
curl_setopt($chh, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($chh, CURLOPT_COOKIEJAR, $tmpfname);
curl_setopt($chh, CURLOPT_COOKIEFILE, $tmpfname);
curl_setopt($chh, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($chh, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($chh, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($chh, CURLOPT_VERBOSE, 1);
curl_setopt($chh, CURLOPT_COOKIESESSION, 1);
curl_setopt($chh, CURLOPT_HEADER, 1);
$header_size = curl_getinfo($chh, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$exp = explode("Set-Cookie:", $header);
$sesja = explode("; Path=/; HttpOnly", $exp[1]);
Dodam jeszcze, że strona w firefoxie wyrzuca mi np:
Kod
Cookie: __utma=179393144.1468963194.1462999507.1462999507.1462999507.1; _ga=GA1.3.1468963194.1462999507; JSESSIONID=UhpC5Rq4mETGZxq4wPXBgAJf
Natomiast tak jak wyżej, w curlu ten atrubut to nie Cookie: tylko Set-Cookie: