3

我有一个 MFC 应用程序,我曾经在其中向相应的服务器发送一个发布请求。这是一个http请求,用于上传文件。

但是需要中止发送的请求。就像用户正在发送一个大文件并且用户应该能够在请求完成之前取消它。

我正在使用 wininet apis, HttpSendRequestExInternetWriteFile为此HttpEndRequest 。但是一旦发送请求,除非请求完成或超时,否则我无法在两者之间中止它。

请任何人提出取消处理或发送请求的选项。

我已经尝试关闭请求句柄,但请求仍然没有中止。

任何人请帮助..在此先感谢

4

1 回答 1

0

从客户端的角度来看,您只能使用InternetCloseHandle例程中止/断开当前操作。从客户端的角度来看,这将立即中止请求/操作,因此用户可以继续执行另一个操作。

但是当数据已经发送到服务器时,这只会导致没有得到响应!

正如 Igor 所说,一旦发送了完整的请求(数据)(此时客户端只是等待从服务器接收数据),您就不能中止服务器的处理。

因此,您需要查看要取消“发送”请求或通过使用第一个请求的响应从客户端向服务器发送新的“删除”请求来恢复服务器上的文件添加的点(这响应应该包含有关添加的文件的信息——比如一个键)。

于 2019-01-17T09:38:40.270 回答