PHP wysyła żądanie POST przez curl

Muszę wykonać żądanie POST do zewnętrznego interfejsu API http za pomocą funkcji zwijania. Gdy wywołuję interfejs API za pomocą wiersza polecenia curl, zwraca poprawne dane. Jednak staram się uzyskać właściwe dane podczas wywoływania go ze skryptu php.

Kiedy używam polecenia curl z terminala, otrzymuję prawidłowe dane:

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

Jaki jest prawidłowy format CURLOPT_POSTFIELDS w moim curl_setopts () w php?

Próbowałem (i nie powiodło się):

<?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);
?>

questionAnswers(1)

yourAnswerToTheQuestion