【问题标题】:Slim Framework returns 204 with 5 extra new lines and tabSlim Framework 返回 204,带有 5 个额外的新行和选项卡
【发布时间】:2025-06-14 07:10:02
【问题描述】:

我正在尝试在用户 /logout 请求上返回 204 HTTP 代码。我发现此代码表明服务器已成功处理请求,但不需要响应。
我正在移动设备上检查此响应,不完全是我,但在我的情况下是 OkHTTP 库。
如果Content-Length 不是 0,它会引发异常。我尝试通过 chrome 扩展发送它并获得以下响应
响应不包含任何数据。
所以似乎没有响应,但 Content-Length:5。
所以我对此很困惑,我通过 WireShark 捕获了数据包,结果如下

\n\n\n\t\n

这是我处理请求的简单代码

\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->add(new \TokenAuth());
$app->put('/test204', function () use ($app) {
            $app->response->setStatus(204);
        });

一切似乎都很好,我不知道这些垃圾放在哪里。
请帮助解决问题,因为我无法在客户端应用程序上收到有效响应,并且忽略异常不是解决此问题的方法。

【问题讨论】:

    标签: php android http slim http-status-code-204


    【解决方案1】:

    抱歉,问题不在于 Slim 框架。我是新手,不知道即使是在 ?> 之后出现的特殊字符也会以纯 html 文本的形式输出。
    我必须在 php 脚本结束后删除所有空格、制表符和其他字符。
    要查找以换行符结尾的文件,请使用以下 bash 命令。

    find -type f -exec sh -c '[ -z "$(sed -n "\$p" "$1")" ] && ec
    ho "$1"' _ {} \;
    

    我想知道也许有什么方法可以让 apache 在文件开头跳过空字符、新行和其他垃圾。

    【讨论】:

      最近更新 更多