file_get_contents(): Content-type not specified assuming application/x-www-form-urlencoded in
Здоровки, в общем сделал метод для API - вроде даже работает, но постоянно выдает эту ошибку, посмотрел в интернете у многих разное решение, обьясните пожалуйста что именно мне нужно исправить и почему. Спасибо:
Вот мой метод:
public static function getReportList(): array
{
$method = 'GetForecastList';
$config = config::get_config();
$request = array(
'token' => $config['dirtoken'],
'method' => $method,
'locale' => 'ru',
);
$request = json_encode($request);
$opts = array(
'http' => array(
'method' => "POST",
'content' => $request,
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://api.direct.yandex.ru/live/v4/json/', 0, $context);
$result = json_decode($result, true);
return $result;
Вот ошибка:
Notice: file_get_contents(): Content-type not specified assuming application/x-www-form-urlencoded in /Users/leonidbasov/Projects/zzz.lk2.ru/engine/direct.php on line 185
185 строчка это:
$result = file_get_contents('https://api.direct.yandex.ru/live/v4/json/', 0, $context);
Спасибо!
Ответы (1 шт):
Автор решения: Ivan Dudarev
→ Ссылка
Добавитл: "Content-type" => "application/json",
НА "Content-type" => "application/json; charset=utf-8", тоже не исчезает (
В массиве контекста заголовок должен передаваться строкой, а не массивом. Вот вам решение:
public static function getReportList(): array
{
$method = 'GetForecastList';
$config = config::get_config();
$request = array(
'token' => $config['dirtoken'],
'method' => $method,
'locale' => 'ru',
);
$headers = array(
'Content-Type: application/json',
);
$request = json_encode($request);
$opts = array(
'http' => array(
'method' => "POST",
'header' => implode("\r\n", $headers),
'content' => $request,
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://api.direct.yandex.ru/live/v4/json/', 0, $context);
$result = json_decode($result, true);
return $result;
}