我有一个Python
+ requests
脚本。
脚本应执行的步骤:
约束:
只能下载已批准的文件
我的代码:
requests.post(url_to_create, files={"file": open(path_to_file)})
requests.post(url_to_approve, data={'id': file_id})
requests.get(url_to_download, data={'id': file_id})
问题:
这段代码几乎完美无缺,但有时候我没有文件。我发现第一个和第三个请求返回200
状态代码,而第二个请求返回202
。据我所知(告诉我,如果我错了)状态202: Accepted
表示服务器接受请求并返回状态代码而没有实际请求完成
问题:
这是否意味着即使请求批准尚未完成也可以发送下载请求,如果是,那么在发送下载请求之前我怎么能等到批准请求完成?
答案 0 :(得分:11)
这取决于您的服务器实施,您的服务器决定如何处理202
。
202接受
已接受请求进行处理,但处理已完成 尚未完成。该请求最终可能会或可能不会被采取行动 因为它可能在处理实际发生时被禁止。 没有从异步中重新发送状态代码的工具 这样的操作。
202回复是故意不承诺的。其目的是为了 允许服务器接受某个其他进程的请求(也许是 没有的批处理过程,每天只运行一次 要求用户代理与服务器的连接一直持续到 这个过程完成了。该实体返回此响应 应该包括请求的当前状态和指示 指向状态监视器的指针或用户何时估计 可以期待请求得到满足。
如果响应正文为空,那么检查应该包含其他信息的响应标头是有意义的。
参考 - https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html