@User782
Кратко о себе

Как отправить JSON данные POST-запросом на PHP?

Как выполнить такой запрос на PHP?
POST /indexnow HTTP/1.1
Content-Type: application/json; charset=utf-8
Content-Length: 286
Host: yandex.com
{
  "host": "www.example.com",
  "key": "EdD8dkmdNLlxREi2LkhJjYOH2kyQbJqM3cBKT5fX",
  "keyLocation": "https://www.example.com/myIndexNowKey63638.html",
  "urlList": [
    "https://www.example.com/url1",
    "https://www.example.com/folder/url2",
    "https://www.example.com/url3"
  ]
}
  • Вопрос задан
  • 3053 просмотра
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Попробуйте так:
<?php

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

$data = [
    "host" => "www.example.com",
    "key" => "EdD8dkmdNLlxREi2LkhJjYOH2kyQbJqM3cBKT5fX",
    "keyLocation" => "https://www.example.com/myIndexNowKey63638.html",
    "urlList" => [
        "https://www.example.com/url1",
        "https://www.example.com/folder/url2",
        "https://www.example.com/url3"
    ]
];

$data_string = json_encode($data);

$result = file_get_contents('https://yandex.com/indexnow', null, stream_context_create(array(
            'http' => array(
                'method' => 'POST',
                    'header' => array(
                        "Content-Type: application/json; charset=utf-8\r\n" .
                        "Content-Length: " . strlen($data_string) . "\r\n" .
                        "Host: yandex.com"
                    ),
                'content' => $data_string
            )
        )
    )
);

header('Content-Type: application/json; charset=UTF-8');
echo $result;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dimsingle
Здравствуйте. Воспользовался вашим скриптом. Открываю php файл из корня сайта , но в ответ вот такой результат :
"
Предупреждение: file_get_contents(https://yandex.com/indexnow): не удалось открыть поток: не удалось выполнить HTTP-запрос! в /var/www/u0948833/data/www/promocoupon.ru.com/IndexNowYandex.php в строке 29

Предупреждение: Невозможно изменить информацию о заголовке - заголовки уже отправлены (вывод запущен в /var/www/u0948833/data/www/promocoupon.ru.com/IndexNowYandex.php:29) в /var/www/u0948833/data/www/promocoupon.ru.com/IndexNowYandex.php на линии 35"

Может что то я не тк делаю ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы