Я искал это в Google, но все ссылки ссылаются на то, что curl не может сохранить файл, но в моем случае все по-другому, curl сохраняет файл правильно, но содержимое отображается только так, как вы видите:
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
--- no cookie contents here ---- only header ----
У меня этот сайт работает в Xampp и все работает.
когда я мигрировал в IIS, единственная проблема, которая у меня возникла, заключается в том, что curl не сохраняет содержимое файлов cookie в файле.
Понятия не имею, что я сделал не так.
//Initiate cURL.
$ch = curl_init($url);
//The JSON data.
$jsonData = array(
'login' => $login,
'password' => $password,
'idioma' => $idioma,
'server' => $server,
'sistema' => $sistema
);
//Encode the array into JSON.
$jsonDataEncoded = json_encode($jsonData);
//curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, "C:\cookies\cookieFile.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "C:\cookies\cookieFile.txt");
//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);
//curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
//Execute the request
$data=curl_exec($ch);
if ($data) {
//var_dump($data);
}else
{
echo "Não foi possível abrir o Sistema no Serviço Eticadata";
}
curl_close($ch);
Чтобы убедиться, что я получаю файлы cookie заголовков, я добавил это
curl_setopt($ch, CURLOPT_HEADER, 1);
Это в ответе, когда я var_dump Data
HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Type: application/json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/10.0 Set-Cookie: ASP.NET_SessionId=ke2s2lf0mkdbqlcfbghrqgg5; path=/; HttpOnly X-AspNet-Version: 4.0.30319 Set-Cookie: .eti_ASPXAUTH=5DE2B541B7CCE00C4356B3D0D9CA0D82C9819A5EB9E915924913DCB3B7FB511D6A27026CECC878FD295B1E8F262B53A8A9F9946318BEEE4C0487ED9F9B64547451EDC9D2C4458A8FEECFEABBD24EE0CF2DD2FCD80B4C3931622309DB443E35066A71B8C01A160F4DDA5FE8594E4C7DD6E62B2D55EB25FCCC9C1C7F304F3285E0; path=/; HttpOnly Set-Cookie: eti_sessionInfo=YwBzAHcAcwBxAGwAXABjAG8AbQBwAHUAcwCnAFMAaQBzAHQAZQBtAGEAQwBTAFcApwBDAFMAVwCnAEUAeAAgADIAMAAxADkApwAxAKcAUABUAC0AUABUAA==; path=/ X-Powered-By: ASP.NET Date: Wed, 12 Jun 2019 15:27:01 GMT Content-Length: 56350
Но, глядя на C: \ cookies \ cookieFile.txt, его содержимое:
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
И внутри нет печенья.
Редактировать
Вот многословный локон
* upload completely sent off: 106 out of 106 bytes
< HTTP/1.1 200 OK
< Cache-Control: no-cache
< Pragma: no-cache
< Content-Type: application/json; charset=utf-8
< Expires: -1
< Server: Microsoft-IIS/10.0
* cookie 'ASP.NET_SessionId' dropped, domain 'cswsql' must not set cookies for 'cswsql'
< Set-Cookie: ASP.NET_SessionId=khdalre2kjro4usbaq4co33c; path=/; HttpOnly
< X-AspNet-Version: 4.0.30319
* cookie '.eti_ASPXAUTH' dropped, domain 'cswsql' must not set cookies for 'cswsql'
< Set-Cookie: .eti_ASPXAUTH=75524EDA1707527A449A395913EDB222D37F40171D44037CA430958BD2F24BF90C2975461F57F58EC6A6E0450ACD98AE64092B13CCDAA73E4CE7207AA2CE834688CBD4113C82AFAB4F513FC2DEFFCEF34496FF47896BCF8BBB3424FD6F6F8F1593B7869E2647AEB82F9D6CD89B2E939E38036D4A94635072996E88528225E793; path=/; HttpOnly
* cookie 'eti_sessionInfo' dropped, domain 'cswsql' must not set cookies for 'cswsql'
< Set-Cookie: eti_sessionInfo=YwBzAHcAcwBxAGwAXABjAG8AbQBwAHUAcwCnAFMAaQBzAHQAZQBtAGEAQwBTAFcApwBDAFMAVwCnAEUAeAAgADIAMAAxADkApwAxAKcAUABUAC0AUABUAA==; path=/
< X-Powered-By: ASP.NET
< Date: Thu, 13 Jun 2019 14:09:21 GMT
< Content-Length: 56350
<
* Connection #0 to host cswsql left intact