Вызов службы ODATA с помощью PHP file_get_contents

Мне нужно вызвать службы ODATA с помощью php7.0 в Debian 9.

Я пытаюсь использовать функцию "file_get_contents", но когда я запускаю скрипт

$call_opts=array(
    "http"=>array(
        "method"=>"GET",
        "header"=>"Content-type: application/x-www-form-urlencoded",
    )
);
//
$call_context=stream_context_create($call_opts);
$call_res_json=file_get_contents($url,false);

он возвращает следующее:

Warning: file_get_contents(http://<URL>): failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized

У меня также есть логин и пароль, но я не знаю, как их использовать.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
367
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В шапку нужно добавить "Авторизация".
Заголовок запроса авторизации HTTP содержит учетные данные для аутентификации пользователя.

Authorization: Basic <credentials>

If the "Basic" authentication scheme is used, the credentials are constructed like this:
- The username and the password are combined with a colon (aladdin:opensesame).
- The resulting string is base64 encoded (YWxhZGRpbjpvcGVuc2VzYW1l).


Попробуйте с этим кодом:

$username = "auth_username";
$password = "auth_password";

$call_opts=array(
    "http"=>array(
        "method"=>"GET",
        "header"=>"Authorization: Basic ".base64_encode($username.":".$password)."\r\n".
                  "Content-Type: application/json",
);

Другие вопросы по теме