Я работаю над обновлением своего DNS с помощью PHP-скрипта. Я просмотрел документацию API, относящуюся к cURL, поэтому я пытаюсь преобразовать cURL psot в PHP.Использование CloudFlare API через ошибку PHP/Curl, возвращающую ошибку
У меня есть следующий код:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.cloudflare.com/client/v4/zones/<MY_ZONE>/dns_records/<MY_ID>");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
$fields = array();
$fields["X-Auth-Email"] = "[email protected]";
$fields["X-Auth-Key"] = "MY_KEY";
$fields["Content-Type"] = "application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $fields);
$dnsData = array();
$dnsData["id"] = "MY_ID";
$dnsData["type"] = "A";
$dnsData["name"] = "home";
$dnsData["content"] = $newIPAddress;
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dnsData));
echo "posting to API<br />";
$result = curl_exec($ch);
echo "Result: " . $result;
С выше код я получаю следующий ответ от Cloudflare.
{ "успех": ложный, "ошибка": [{ "код": 6003, "сообщение": "Неверный запрос заголовков", "error_chain": [{ "код": 6100, "сообщение ":" Отсутствует X-Auth-Email header "}, {" code ": 6101," message ":" Missing X-Auth-Key header "}, {" code ": 6105," message ":" Invalid заголовок Content-Type, действительные значения приложения/JSON, многочастному/форм-данных "}]}]," сообщения ": []," результат ": нулевой}
Я попытался изменить json_encode в http_build_query, но оба возвращают ту же ошибку.
Спасибо за любую помощь, которую вы можете предоставить.