Мне нужно сделать запрос 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); ?>
Сделать это Accept: application/json
вместо Content-Type: application/json
Вы сделали это в командной строке, но не в скрипте php.