只需阅读有关 HTTP 响应代码 202 的信息,其中 POST 不返回正文,而是返回一个位置以轮询(获得 200s)直到完成(获得 201 或 303)。
在 C# 中,我们通过为方法名称提供一个异步后缀的约定来传达这一点(它返回一个任务或接受回调引用)。
我如何在 HTTP 中进行通信?我是否发明了自己的临时方法,或者是否有一些请求 header 或其他标准方法来指示这一点?
有没有一种标准的方法来告诉客户端轮询的频率? (据我了解 HTTP,没有办法在不进行轮询的情况下进行回调,对吧?)
我读过这个related question ,它没有说明客户端如何区分同步请求和异步请求,也没有说明如何传达轮询率。同上related question .
最佳答案
How do I communicate this in HTTP? Do I invent my own ad hoc method, or is there some request header or other standard means for for indicating this?
我相信 202 accepted 主要用于最终一致性。 Afaik 没有标准的方法来描述投票链接,所以你必须使用你的临时解决方案。通过 HTTP,您只能进行轮询,但如果您不希望客户端进行轮询,则可以将 websockets 与 HTTP 结合使用。 (注意:websockets 不是 REST)
您可以使用已经存在的 vocab to describe a poll link与链接数据。我还没有找到包含这个术语的词汇表,所以恐怕你必须在自己的词汇表中定义它,或者可能使用自定义链接关系...:S
关于rest - 如何向服务器指示 REST HTTP 调用是异步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102445/