本地环境:
windows 7
php7.1
laravel5.6
guzzlehttp/guzzle ^6.3
web.php 里定义的路由如下:
Route::get('/', function () {
    return view('welcome');
});
Route::get('/test', 'DemoController@index')->name('demo');
执行 php artisan serve, 访问路由http://localhost:8000/test, 对应的Controller如下:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class DemoController extends Controller
{
    public function index()
    {
        $client = new \GuzzleHttp\Client();
        $response = $client->request('GET', 'http://localhost:8000/', [
            'timeout' => 30
        ]);
        return $response->getStatusCode();
    }
}
这种情况一直都是处于加载,无法获得结果。如果换个地址,比如'http://www.163.com', 则正常返回.
|  |      1xuyl OP php artisan serve 有个内置的 http 服务器,默认监听 8000 端口, 而在 laravel 代码里, guzzlehttp 无法把请求发送到 localhost 的 8000 端口? | 
|  |      2fuxkcsdn      2018-05-09 13:01:54 +08:00 via iPhone  1 php 内置的 http server 是 block 的,一次只能处理一个请求 | 
|  |      3ucaime      2018-05-09 13:13:37 +08:00 via iPhone 如果我没有看错,你这是环路请求?不挂才怪 | 
|  |      4ss098      2018-05-09 13:17:54 +08:00 via Android 2 楼正解,你需要部署 Web 服务器才可以同时处理一个以上的请求。 | 
|  |      5xuyl OP | 
|  |      6nuxt      2018-05-09 13:25:17 +08:00 死循环,看不出来吗? | 
|  |      7xhinliang      2018-05-09 22:07:46 +08:00 666666 这个死循环写的不错 | 
|  |      8shaojjjin      2018-05-09 22:24:29 +08:00 via iPhone 应该是 php 内置的服务器的问题,我也遇到过。后来用 nginx 部署了个本地站点解决。 |