webman 为何在centos 使用 wget或者curl 访问 却获取不到$_GET请求参数呢

mylovehx

问题描述

webman 为何在centos 使用 wget或者curl 访问 却获取不到$_GET请求参数呢,用PHP中的 curl或者file之类的访问都不行。

同样的URL 直接使用浏览器访问就可以正常获取

研究一晚上了,请各位帮忙看看是不是也有这种情况。

下面的代码很明显,只打印了第一个参数,也只获取到了第一个。

程序代码或配置

curl http://127.0.0.1:8000/api/index?ddfads=32432&fdsfds=43254324&fhewfhew=345324324hh4hj32j32h4j32h4j32h4h32hr3jhfd&dsfjdsjfjdssfjdskfk=34333
[1] 1441075
[2] 1441076
[3] 1441077
[root@server yunpolice]# test{"ddfads":"32432"}
[1]   已完成               curl http://127.0.0.1:8000/api/index?ddfads=32432
[2]-  已完成               fdsfds=43254324
[3]+  已完成               fhewfhew=345324324hh4hj32j32h4j32h4j32h4h32hr3jhfd

<?php

namespace app\controller;

use support\Request;
use support\Db;
use support\TtsVoiceSender;
use support\singleCallByTts;
use support\yuncall;

class ApiController
{
    public function index(Request $request)
    {
        static $readme;
        if (!$readme) {
            $readme = "test".json_encode($request->get());
        }
        return $readme;
    }
}

操作系统环境及workerman/webman等具体版本

最新版本webman php8.2以上

79 5 0
5个回答

mylovehx

配置是保持默认的,没有设置任何路由

  • 暂无评论
mylovehx

完全参考
https://www.workerman.net/doc/webman/request.html
基础请求写的,没有增加任何其他的设置
就是打算做一个API服务而已/

  • 暂无评论
mylovehx

没有升级webman 之前是可以的,用了新版本后就不行,关键是,老版本代码一时间忘记备份了。真是。。。

  • 暂无评论
walkor

命令行中包含 & 会被解释为命令的分隔符。你需要用引号将整个 URL 包裹起来,或者转义 & 符号。

可以尝试以下方法:

使用引号

curl "http://127.0.0.1:8000/api/index?ddfads=32432&fdsfds=43254324&fhewfhew=345324324hh4hj32j32h4j32h4j32h4h32hr3jhfd&dsfjdsjfjdssfjdskfk=34333"

转义 &

curl http://127.0.0.1:8000/api/index?ddfads=32432\&fdsfds=43254324\&fhewfhew=345324324hh4hj32j32h4j32h4j32h4h32hr3jhfd\&dsfjdsjfjdssfjdskfk=34333

这样可以确保所有参数被正确传递到服务器。

问下AI就知道了 https://www.workerman.net/ai

×
🔝