繁体   English   中英

是否允许发布空数据?

[英]Is it allowed to POST empty data?

对于我正在开发的 web API 我想做类似于 Facebook 图 API 的事情。一个用户可以邀请另一个用户。 要接受或拒绝邀请,其他用户需要执行一个空的 POST 到:

/invitation/<invitationId>/accepted

要么

/invitation/<invitationId>/rejected

但是,这对我不起作用,因为当我发布空数据时,PHP(或 Apache?)返回以下错误:

请求的实体太大!

POST方式不允许传输数据,或数据量超过容量限制。

显然这不是真的,因为 POST 数据是空的(我在 Firebug 中仔细检查过)。 所以我的问题是:

  • HTTP 协议是否允许发布空数据? 如果没有,我想我会发布一些虚拟数据,但我宁愿避免这种黑客行为。

  • 如果允许,我怎样才能让 Apache/PHP 允许请求?

我猜您想做某种 RESTful api,这就是为什么您需要发送没有数据的帖子。

Apache/php 应该允许你发送空的 post 数据,限制必须由你正在使用的框架的一些服务器配置强加

你可以用这个简单的文件来测试它:

<?php

echo '<h2>This page was requested using ' . $_SERVER['REQUEST_METHOD'] . '</h2>';
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="" method="post">
    <input type="submit" value="Request this page using POST" />
</form>

您将看到脚本检测到发布请求(使用来自 _SERVER 超全局的 REQUEST_METHOD),即使 _POST 数组是空的

你为什么要发出 POST 请求? 让你的 API 检测是否有数据发送,如果没有数据,则发出 GET 请求。 事实上,在大多数情况下,发出 GET 请求效率更高,因为浏览器可以更轻松地缓存该信息(并且您可以通过发送特定于缓存的标头使您的 API 智能地利用它)。

在你的情况下发出 POST 请求是没有意义的:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM