PHP sendet POST-Anfrage per Curl

Ich muss eine POST-Anfrage an eine externe http-API mit curl stellen. Wenn ich die API über die Curl-Befehlszeile aufrufe, werden die richtigen Daten zurückgegeben. Ich kämpfe jedoch darum, die richtigen Daten zu erhalten, wenn ich sie von einem PHP-Skript aus aufrufe.

Wenn ich den Befehl curl vom Terminal verwende, erhalte ich die richtigen Daten:

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

Was ist das richtige Format für die CURLOPT_POSTFIELDS in meinem curl_setopts () in PHP?

Ich habe Folgendes versucht (und bin gescheitert):

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage