我的控制器中有http请求:
$url = url('/api/list-professional');
$professionals = Http::get($url);
当我在phpUnit Tests中使用这两行代码时, 但是当我在控制器中使用它们时,它只会超时.
有人知道为什么吗?
我的控制器中有http请求:
$url = url('/api/list-professional');
$professionals = Http::get($url);
当我在phpUnit Tests中使用这两行代码时, 但是当我在控制器中使用它们时,它只会超时.
有人知道为什么吗?
这样做的原因是php artisan serve
是单线程应用程序.因此,当我们使用一个HTTP客户端向它自己发出请求时,它基本上只是try 先完成GUZLE HTTP客户端(作为客户端),然后再来完成该请求(作为服务器),这是不可能的.
因此,使用php artisan Serve创建两个端口.一个端口用于HTTP客户端,另一个端口用于从浏览器访问
例如,如果您创建了端口8000和8001,则
$professionals = Http::get("http://127.0.0.1:8001/api/list-professional");
并使用8000端口从浏览器访问