有人用这个 guzzlehttp/guzzle 这个包吗?遇到点问题。

2018-05-09 12:15:26 +08:00
 xuyl

本地环境:

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', 则正常返回.

4669 次点击
所在节点    PHP
8 条回复
xuyl
2018-05-09 12:21:07 +08:00
php artisan serve 有个内置的 http 服务器,默认监听 8000 端口, 而在 laravel 代码里, guzzlehttp 无法把请求发送到 localhost 的 8000 端口?
fuxkcsdn
2018-05-09 13:01:54 +08:00
php 内置的 http server 是 block 的,一次只能处理一个请求
ucaime
2018-05-09 13:13:37 +08:00
如果我没有看错,你这是环路请求?不挂才怪
ss098
2018-05-09 13:17:54 +08:00
2 楼正解,你需要部署 Web 服务器才可以同时处理一个以上的请求。
xuyl
2018-05-09 13:23:58 +08:00
@ucaime 不是环路,如果我访问 http://localhost:8000/test, 然后该路由下又通过 guzzlehttp 请求 http://localhost:8000/test 才是环路了;
@fuxkcsdn @ss098 你们说得对,多谢。
nuxt
2018-05-09 13:25:17 +08:00
死循环,看不出来吗?
xhinliang
2018-05-09 22:07:46 +08:00
666666 这个死循环写的不错
shaojjjin
2018-05-09 22:24:29 +08:00
应该是 php 内置的服务器的问题,我也遇到过。后来用 nginx 部署了个本地站点解决。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453394

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX