Привет, у меня есть Laravel, работающий в моем докере (nginx, php, mysql) и другие Laravel за пределами этого контейнера только с помощью php artisan serve --port = 9000
ну, я пытаюсь заставить эти два приложения обмениваться информацией, поэтому я использую Guzzle для этого. проблема в том, что в моем приложении docker laravel, которое жужжит, установлено, я пытаюсь http: localhost: 8090 / test, маршрут отправляет меня на контроллер:
public function exchange()
{
$client = new Client();
$request = $client->post( 'http://localhost:9000/exchange', [
'headers' => ['Accept' => 'application/json']
]);
return $request;
}
что я должен получить, другое приложение на порту 9000:
public function index()
{
$someNumber = 322441000;
return $someNumber;
}
но вместо этого появляется сообщение об ошибке:
GuzzleHttp \ Exception \ RequestException
cURL error 56: Recv failure: Connection reset by peer (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
итак пошел: https://curl.haxx.se/libcurl/c/libcurl-errors.html @ 56 и:
CURLE_RECV_ERROR (56)
Failure with receiving network data.
что не очень помогло. ну если кто знает как исправить, дружище!
Эта ошибка связана с вашей сетевой конфигурацией, а не с использованием Laravel или Guzzle. Проблема в том, что localhost:9000 недоступен из вашего контейнера докеров. Насколько мне известно, Docker не предназначен для предоставления контейнеру доступа к хосту. Вам нужно будет установить 2 контейнера и связать их.
Аккуратный. Я протестировал два приложения laravel вне докера, и они работают нормально. Собираюсь связать сейчас мои приложения для докеров и может работать. Спасибо, Сэм :)






почему бы не попробовать использовать ответ с заголовком json в вашем index () {} Также сделайте свой $ someNumber [] = blahblahblah; вернуть ответ () -> json ($ someNumner);