think-swoole检测是否https访问

背景

因为项目测试需要https,但是thinkphp 6开启thinkswoole后检测不到https访问。

百度没有找到解决办法,只能自己造轮子了。

解决

修改think-swoole文件src/concerns/InteractsWithHttp.php

// 找到方法
protected function prepareRequest(Request $req)
{
    $header = $req->header ?: [];
    $server = $req->server ?: [];
    // 以下为添加的代码
    if (!isset($server['HTTPS'])) {
        $server['HTTPS'] = Config::get('swoole.server.socket_type', SWOOLE_SOCK_TCP) & SWOOLE_SSL == SWOOLE_SSL ? 'on' : '';
    }
    // 结束
}

think-swoole检测是否https访问
http://blog.icy8.cn/posts/50519/
作者
icy8
发布于
2021年6月19日
许可协议