Как правильно передать заголовки в json

259
10 октября 2021, 18:50

Помогите.

В неком API, нужно получить ответ в формате json

может принимать как post параметры(по умолчанию) так и json, при передачи json необходимо обязательно передать http заголовок content-type: application/json.

В запросе нужно передать еще и заголовки

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json'));
curl_setopt($ch, CURLOPT_URL, 'https://site.com/status');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
$headers = [
    'api_sign: '.$sha256,
    'public_key: '.$pub_key
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

Что бы правильно отослать и получить в json формате, надо все данные json_encode Если я делаю

$headers =json_encode($headers);
$post=json_encode($post);

то сервер отдает "неправильная аутентификация". Как заголовки передать правильно?

Answer 1

Михаил Алексеевич спасибо, действительно - дважды отсылаю CURLOPT_HTTPHEADER

READ ALSO
Почему выдается ошибка?

Почему выдается ошибка?

Код вырван из контекста, но я думаю не имеет смысла копировать сюда всю программуЕсть код PHP, который обрабатывает данные, введенные в форму:

263
XML не принимает URL

XML не принимает URL

не могу в ХМЛ файлу добавить урл не получается вот сам код заранее спасибо

86
Подключение файлов в phpStorm

Подключение файлов в phpStorm

Всем приветСтруктура сайта:

93
ReCapcha v2 от google, ошибка

ReCapcha v2 от google, ошибка

Всем привет! Возникла такая ошибка с капчейВот код, обработчик:

101