是否可以在请求模块中取消长时间运行的HTTP请求?

时间:2019-01-08 14:21:20

标签: python python-requests http-post

我正在编写文件上传器,如果要发送下一个请求,则应该取消第一个POST请求。

我必须上传非常大的文件,所以这种情况非常普遍。

我可以取消当前正在运行的请求我的请求模块吗?

1 个答案:

答案 0 :(得分:0)

提交POST后,客户端(网页本身-即Javascript / HTML)通常无法直接控制服务器上发生的事情(您发送的POST的处理)。

此外,传统的“表单提交” POST是同步的,一旦启动,您基本上就失去了对该网页的控制,直到它返回某些内容为止,或者直到您导航到其他地方(例如单击“后退”按钮)并因此决定不要等待POST返回。

用外行的话来说,我相信这是对其工作方式的典型限制。

如果您使用Javascript和AJAX异步发送帖子(即:“后台”),则不会失去对页面的控制,仍然可以运行javascript并在页面上执行操作,例如设置计时器并采取措施如果帖子在一定时间内没有完成。

以一种智能的方式进行操作仍然需要理解各种基本的AJAX概念,最好是去学习它,而不仅仅是第一次粘贴某个人的解决方案-但这就是您解决这类问题的方法

Some info on Ajax Sync/Async requests

**编辑:现在,我想链接到一个不错的入门教程来做适当的Ajax,所以我找不到任何地方。但是无论如何,这可能是您可能需要的技术,您可能必须四处搜寻。