如何中止使用wininet发送的请求?

时间:2013-09-30 08:43:30

标签: visual-c++ mfc httprequest wininet

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

但是要求中止发送的请求。就像用户发送大文件一样,用户应该能够在完成之前取消请求。

我正在使用wininet apis, HttpSendRequestExInternetWriteFileHttpEndRequest就此而言。 但是一旦请求被发送,除非请求被完成或超时,否则我无法中止请求。

任何人都建议您取消处理或发送请求的选项。

我尝试了closing the request handles,但请求仍未中止。

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

1 个答案:

答案 0 :(得分:0)

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

但是,当数据已经发送到服务器时,这只会导致不返回响应!

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

因此,您需要查看要取消“发送”请求或在服务器上还原文件的位置,方法是使用第一个响应从客户端向服务器发送新的“删除”请求请求(此响应应包含有关添加的文件的信息,例如密钥)。