我正在尝试将 JSON 对象从客户端发送到服务器并接收响应,但我发现的所有方法要么不足,要么矫枉过正

Posted

技术标签:

【中文标题】我正在尝试将 JSON 对象从客户端发送到服务器并接收响应,但我发现的所有方法要么不足,要么矫枉过正【英文标题】:I'm trying to send a JSON object from client to server and receive a response but all the approaches I find are either inadequate or overkill 【发布时间】:2020-09-14 22:40:43 【问题描述】:

我现在不确定这样做的正确方法是什么。我正在尝试获取一个大的 json 文件,将其发送到服务器,对其进行处理和重新排序,然后将其发送回客户端。我不想在数据库中存储任何数据。我知道有 HTTP GET 动词,但我输入的数据量会比最大长度 URI 长。我还读到您也不应该尝试使用 HTTP POST 来执行此操作。

我也研究了 WebSockets,但对我来说这似乎有点过头了。我只需要进行计算所需的时间的套接字,然后我会关闭它。我也想只与发送给我的客户共享数据。

有没有人有关于做什么的建议。也许只是通过一些我可以阅读的链接向正确的方向推进。我真的在寻找这两种方法中间的东西。

【问题讨论】:

这似乎是 POST 的一个用例。 这是我最初的想法,但this post 似乎不鼓励以我想要的方式使用它,似乎希望我重定向到它托管的另一个页面。我根本不想存储数据。 【参考方案1】:

为什么不直接使用 HTTP POST 请求?取自https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST

上的信息框
> Request has body                  Yes  
> Successful response has body      Yes  
> Safe                              No  
> Idempotent                        No  
> Cacheable                         Only if freshness information is included  
> Allowed in html forms             Yes  

如您所见,HTTP POST 请求用于向服务器发送数据,如果 POST 请求成功,服务器将数据发送回客户端。我认为非常适合您的情况。

不必在 HTML 表单中使用 POST 请求;您可以使用 XHR、AJAX、fetch API 或您能找到的任何其他方式向服务器发送 POST 请求。是的,您可以使用它发送 JSON 数据。

如果您需要更有说服力:

当 POST 请求通过 HTML 表单以外的方法发送时(例如通过 XMLHttpRequest),主体可以采用任何类型。如 HTTP 1.1 规范中所述,POST 旨在允许统一的方法涵盖以下功能:

现有资源的注释 将消息发布到公告板、新闻组、邮件列表或类似的文章组; 通过注册模式添加新用户; 向数据处理进程提供数据块,例如提交表单的结果; 通过追加操作扩展数据库。

请注意,这里说 POST 请求可用于向数据处理进程提供数据块。

希望这对您有所帮助。 :)

【讨论】:

谢谢,起初我认为这可能不是最好的方法,但我想如果它适合它的话。

以上是关于我正在尝试将 JSON 对象从客户端发送到服务器并接收响应,但我发现的所有方法要么不足,要么矫枉过正的主要内容,如果未能解决你的问题,请参考以下文章

Ajax 发布到 Flask - json [重复]

iPhone- 在 POST 中将 JSON 对象发送到 PHP 服务器并从服务器获取响应

如何从目录中读取文件并作为 JSON 发送给客户端?

从 Android 发送到计算引擎服务器的 JSON 返回 null

使用 UdpClient C# 发送对象

如何将对象从 MongoDB 发送到玉?