如何发送没有任何数据的 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 请求?