У меня возникли проблемы с преобразованием моей команды curl в php.
Эта часть отлично работает.
CURL, которая добавляет запись в мою базу данных Parse.com:
curl -X POST \ -H "X-Parse-Application-Id: my_id" \ -H "X-Parse-REST-API-Key: api_id" \ -H "Content-Type: application/json" \ -d "{\"SiteID\":\"foundID\",\"dataUsedString\":\"foundUsage\",\"usageDate\":\"foundDate\", \"monthString\":\"foundMonth\", \"dayString\":\"foundDay\",\"yearString\":\"foundYear\"}" \ https://api.parse.com/1/classes/MyClass
РЕШЕННЫЙ ОТВЕТ:
Я создал этот PHP-скрипт для репликации команды:
<?php $ch = curl_init('https://api.parse.com/1/classes/MyClass'); curl_setopt($ch,CURLOPT_HTTPHEADER, array('X-Parse-Application-Id:my_id', 'X-Parse-REST-API-Key:api_id', 'Content-Type: application/json')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"SiteID\":\"foundID\",\"dataUsedString\":\"foundUsage\",\"usageDate\":\"foundDate\", \"monthString\":\"foundMonth\", \"dayString\":\"foundDay\",\"yearString\":\"foundYear\"}"); curl_exec($ch); curl_close($ch); ?>
Вы пропустили некоторые важные конфигурации. Это набор CURL для отправки запроса с использованием POST, а второй – данные для отправки. (RAW DATA отправляется как строка в POSTFIELDS, те, которые вы отправляете массиву, – автоматически добавят заголовок «multipart / form-data»,
$ch = curl_init('https://api.parse.com/1/classes/MyClass'); curl_setopt($ch,CURLOPT_HTTPHEADER, array( 'X-Parse-Application-Id:my_id', 'X-Parse-REST-API-Key:api_id', 'Content-Type: application/json' ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"SiteID\":\"foundID\",\"dataUsedString\":\"foundUsage\",\"usageDate\":\"foundDate\", \"monthString\":\"foundMonth\", \"dayString\":\"foundDay\",\"yearString\":\"foundYear\"}"); curl_exec($ch); curl_close($ch);
НТН ðŸ™‚
Поскольку вы выполняете запрос POST
вам также нужно сказать Curl:
$postData = '{"SiteID":"foundID","dataUsedString":"foundUsage","usageDate":"foundDate", "monthString":"foundMonth", "dayString":"foundDay","yearString":"foundYear"}'; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
Вам также может потребоваться указать заголовок Content-Length
:
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'X-Parse-Application-Id: my_id', 'X-Parse-REST-API-Key: api_id', 'Content-Type: application/json', 'Content-Length: '.strlen($postData)) );