Как отправить запрос cookie в API на php через Curl

У меня есть аутентификация на основе HTTP cookie, после аутентификации я получаю cookie в ответ,

Еще один шаг-отправить запрос cookie в API. вместе с post / get request

Ниже пример my Curl

$cookie_jar= $_COOKIE['DesigntoolAuth'];
//$ch = curl_init($url);                                                                      
// The data to send to the API
$postData = array(
    'ProjectId' => $projectId,
    'ProjectName' => $proname,
    'ProjectDetails' => $details, 
    'UserId' => $userId
);

$data_string = json_encode($postData);  
// Setup cURL
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
curl_setopt($ch, CURLOPT_VERBOSE, true);  
curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_jar);                                                                 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json'                                                                             
    //'Content-Length: ' . strlen($data_string)
    ));                                                                   

    $api_result =  curl_exec($ch);
    echo $api_result;

Кто-нибудь может сказать, как ti отправить cookie ?

1 ответ

  1. Из ссылки curl PHP:

    CURLOPT_COOKIEFILE

    Имя файла, содержащего данные cookie. Файл cookie может быть в формате Netscape или просто заголовки в стиле HTTP, сброшенные в файл. Если имя является пустой строкой, файлы cookie не загружаются, но обработка файлов cookie все еще включена.

    Это означает, что CURLOPT_COOKIEFILEнеобходимо обратиться к файлу, который содержит файлы cookie, которые необходимо отправить. Файл представляет собой файл, который существует на сервере, на котором выполняется cURL, который, в свою очередь, будет передавать данные cookie удаленному хосту. Я ожидал, что доступ для чтения будет необходим в файле.

    Хороший ответ, описывающий, как выглядит формат Netscape, можно найти здесь

    Кроме того, если вы хотите сохранить файлы cookie, созданные во время запроса, вам также необходимо установить a CURLOPT_COOKIEJAR.