如何发送没有任何数据的 POST 请求,以检查该端点是不是已启动?

Posted

技术标签:

【中文标题】如何发送没有任何数据的 POST 请求,以检查该端点是不是已启动?【英文标题】:How to send a POST request without any data, to check if that endpoint is up?如何发送没有任何数据的 POST 请求,以检查该端点是否已启动? 【发布时间】:2020-09-14 16:21:25 【问题描述】:

我正在为一个应用程序编写一个测试框架,我不能更新、删除、移动,或者基本上对这个应用程序使用的数据做任何事情。对于 GET 请求,我需要测试这没有问题,但是更改数据的 PUT、POST 和 DELETE 方法显然不是这种情况。

有没有什么方法可以在没有任何正文的情况下发送 POST 请求,并且仍然得到显示 url 可以接受请求的响应?或者换句话说,我怎样才能显示一个 POST 的 url 已经启动并能够接受请求,而无需实际发送 POST 请求并更改数据库中的某些内容? (不幸的是,不可能将测试对象添加到数据库并在其上运行请求)。

我也需要在 Java 或 C# 中以编程方式执行此操作。

【问题讨论】:

这能回答你的问题吗? POST with curl without sending data 我需要在 java 或 C# 中以编程方式完成此操作,而不是从命令提示符。谢谢@g_bor!我可能会在其他时间使用它 这有帮助吗? ***.com/questions/7907648/… @g_bor 不幸的是,我的应用程序将空正文视为 null,因此 POST 正在更改的字段设置为 null,我不允许这样做 根据我发布的线程中高度赞成的评论,将内容设置为 null 将不会发送正文。你能确认是这样吗? 【参考方案1】:

没有通用的方法来“测试”POST 请求是否有效。

大多数服务器可能会针对这些端点发出 400 错误,这并不能告诉您很多信息。

查看某物是否能够接受POST 请求的最标准方法可能是执行OPTIONS 请求并在响应中使用Allow 标头来获取支持的方法列表。

无法保证这将是正确的,但许多现代框架在填充此列表方面做得不错。这可能会为您提供最准确但仍不完美的结果。

您不应该在任何地方发送一个空的 POST 请求,因为它可能有意义并且您可能会对服务器进行意外更改。对于这种内省的东西,坚持“安全”的方法。

【讨论】:

是的,发送一个空的 POST 看起来会被视为 null 并向服务器添加 null 值,但我认为您的 OPTIONS 建议应该适用于我正在尝试做的事情,谢谢您的回复!

以上是关于如何发送没有任何数据的 POST 请求,以检查该端点是不是已启动?的主要内容,如果未能解决你的问题,请参考以下文章

如何发送 POST 请求以响应 node.js Express?

如何在 Android 中使用 HTTPClient 以 JSON 格式发送 POST 请求?

如何在 POST API 中创建请求 ID 并记录它

如何使用 PHP 发送 POST 请求?

如何在http post请求中发送参数以获取laravel中的数据

如何通过ajax从表单发送POST数据数组?