Отправка JSON через POST-запрос

Всем привет! Отправляю POST запрос в формате JSON на yandex.com/indexnow
Получаю ответ
{ ["success"]=> bool(false) ["message"]=> string(14) "Invalid params" }
Не пойму в каком виде у меня формируется JSON
<?php
$url = 'https://yandex.com/indexnow';
$params = array
(
  "host" => "mysite.ru",
  "key" => "32248d5f5c3612c6",
  "keyLocation" => "",
  "urlList" => [
    "https://mysite.ru/services.html",
    "https://mysite.ru/qweqweqwe.html"
  ]
);


/* @var modRest $client */
$client = $modx->getService('rest', 'rest.modRest');
//$client->setOption('format','JSON'); // Формат полученных данных принимает json или xml (по умолчанию json) для преобразования в массив
//$client->setOption('suppressSuffix','true'); // иначе при использовании format=json в конец url добавится http://site.ru/method.json
$response = $client->post($url, $params);
$data = $response->process(); // Вернет массив
var_dump($data);
А вот этот код работает, получаю успешную отправку.
$data = array(
  "host" => "mysite.ru",
  "key" => "32248d5f5c3612c6",
  "keyLocation" => "",
  "urlList" => [
    "https://mysite.ru/services.html",
    "https://mysite.ru/qweqweqwe.html"
  ]
);		
 
$ch = curl_init('https://yandex.com/indexnow');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json; charset=utf-8'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);
 
$res = json_encode($res, JSON_UNESCAPED_UNICODE);
print_r($res);
Roman
27 октября 2021, 16:15
modx.pro
620
-1

Комментарии: 3

Евгений Webinmd
27 октября 2021, 17:45
+1
Может пропустили
$params = json_encode($params)
    Игорь
    27 октября 2021, 22:22
    +1
    ссылка

    $client->setOption('format','JSON');
    попробуйте указать json в нижнем регистре, в методе preparePayload format проверяется в нижнем регистре, json_encode не нужен, он уже есть в методе
      Roman
      28 октября 2021, 09:48
      0
      Спасибо! Заработало! Вчера весь мозг вынес себе XD
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3