Сделать запрос API локального хоста с помощью клиента Symfony?

#php #symfony #localhost

Вопрос:

Я пытаюсь с помощью Symfony 5 сделать запрос на свой API, разработанный с помощью платформы API.

URL-адрес, о котором идет речь, является https://127.0.0.1:8000/api/cheeses

Когда я делаю запрос на получение этого с почтальоном, все работает хорошо. И если я перейду по URL-адресу в своем браузере, это сработает. Но невозможно сделать запрос на PHP с помощью Symfony. Я сделал это вот так :

 use SymfonyContractsHttpClientHttpClientInterface;

class AbstractService
{

   public function __construct(private HttpClientInterface $client){}

   protected function request(string $method, string $path, array $params = [])
    {

        $response = $this->client->request('GET', 'https://127.0.0.1:8000/api/cheeses', [
            'headers' => [
                'Content-Type' => 'application/json',
            ]
        ]);

        dd(json_decode($response->getContent(), true, 512, JSON_THROW_ON_ERROR));
    }

}
 

Когда я пытаюсь это повторить, и я получаю ошибку :

Время ожидания ожидания достигло «https://127.0.0.1:8000/api/cheeses».

Но если я пытаюсь использовать внешний URL, например https://api.github.com/repos/guzzle/guzzle, это работает.

Моя конфигурация nelmio_cors :

 nelmio_cors:
    defaults:
        origin_regex: true
        allow_origin: ['*']
        allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
        allow_headers: ['Content-Type', 'Authorization']
        expose_headers: ['Link']
        max_age: 3600
    paths:
        '^/': null
 

Есть идеи ?

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

1. Как вы обслуживаете приложение? Какой сервер вы используете? Есть ли в этом деле контейнер docker?

2. Я подаю заявку с symfony serve помощью . Сервер Apache, локальный, и нет, это не контейнер docker

3. Понятия не имею, возможно, проблема в SSL-сертификате. Это проблема с использованием интерфейса командной строки symfony, он запутывает часть процесса.

4. Я тестировал с SSL и без SSL, и это та же ошибка

5. Привет. Попробуйте удалить https-часть запроса, на всякий случай.