PHP отправляет запрос POST через завиток

Мне нужно сделать запрос POST для внешнего HTTP API с помощью curl. Когда я вызываю API с помощью командной строки curl, он возвращает правильные данные. Тем не менее, я изо всех сил пытаюсь получить нужные данные при вызове его из скрипта php.

Когда я использую команду curl из терминала, я получаю правильные данные:

curl -i -H "Accept: application / json" -X POST -d "type_category_id = 4" http://example.com/api/

Каков правильный формат для CURLOPT_POSTFIELDS в моем curl_setopts () в php?

Я попробовал следующее (и не удалось):

<?php $data = "type_category_id=4"; $ch = curl_init('http://example.com/api/'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data)) ); $result = curl_exec($ch); ?>