Curl PHP как передать в заголовке одновременно json и данные

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));

С помощью CUrl запроса я передаю json, но мне также нужно передать токен(это API запрос), в обычном случае я бы передал это массивом, но application/json и есть массив. Вопрос: как мне одновременно передать и этот параметр и токен в формате: "mytoken": $token


Ответы (1 шт):

Автор решения: nikello

Можно так:

$arFields = [
   "name" => 'Иван Иванов',
   "birthday" => '02.02.2002',
   "phone" => '+7(999)99-99-99',
   "sex" => 'Male',
];
$jFields = json_encode($arFields, JSON_UNESCAPED_UNICODE);

$arOptions = [
    CURLOPT_SSL_VERIFYPEER => false, //Проверка SSL сертификата
    CURLOPT_SSL_VERIFYHOST => false, //Проверка хоста на соответствие с SSL
    CURLOPT_HEADER => true, //Включаем передачу заголовка
    CURLOPT_RETURNTRANSFER => true, //Возврат результата
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . base64_encode($token),
        'Accept: application/json',
        'Content-Type: application/json'
    ], //Массив заголовков
    CURLOPT_URL => $this->url . '/client/' . $id, //Загружаемый URL, куда посылаем
    CURLOPT_POST => true, //Передаем данные POST
    CURLOPT_POSTFIELDS => $jFields, //POST - запрос
];
curl_setopt_array($ch, $arOptions);
→ Ссылка