我有一个MFC应用程序,我曾经在其中向相应的服务器发送一个post请求。 这是一个http请求,用于上传文件。
但是要求中止发送的请求。就像用户发送大文件一样,用户应该能够在完成之前取消请求。
我正在使用wininet apis,
HttpSendRequestEx
,InternetWriteFile
和HttpEndRequest
就此而言。
但是一旦请求被发送,除非请求被完成或超时,否则我无法中止请求。
任何人都建议您取消处理或发送请求的选项。
我尝试了closing the request handles,但请求仍未中止。
任何人请帮忙.. 在此先感谢
答案 0 :(得分:0)
从客户端的角度来看,只能使用InternetCloseHandle
例程来中止/断开当前操作。
从客户端的角度来看,这将立即中止请求/操作,因此用户可以继续执行其他操作。
但是,当数据已经发送到服务器时,这只会导致不返回响应!
正如Igor所说,一旦发送了完整的请求(数据)(此时客户端只是等待从服务器接收数据),就不能在服务器上中止处理。
因此,您需要查看要取消“发送”请求或在服务器上还原文件的位置,方法是使用第一个响应从客户端向服务器发送新的“删除”请求请求(此响应应包含有关添加的文件的信息,例如密钥)。