如果连接重置,HttpSendRequest 是否会自动重试?

问题描述

我正在 Windows 10 桌面上运行用 C++ 编写的 64 位 Windows 应用程序。使用 HttpSendRequest 调用我们的一项服务。我知道对于一个特定的调用,服务器正在断开连接到一个问题,但似乎 HttpSendRequest 然后自动进行额外的调用,然后在第二次调用后返回。

详情:

向 http://myserver/myservice/request_params 发出 PUT 请求

这会在服务器上创建一个参数集,并返回一个 GUID

向 http://myserver/myservice/report/aaa-bbb-ccc-ddd 发出 GET 请求

其中 aaa-bbb-ccc-ddd 是 GUID,这应该是一次性请求 ID。

服务在执行初始 GET 请求时出现问题,并断开连接。我知道这是因为当我运行 Wireshark 时,我可以看到对 GET 端点的两次调用。第一次,TCP RST 返回并关闭连接。

我已经逐步完成了我们的代码并验证了我们正在对 HttpSendRequest 进行一次调用,但这将返回 true,状态为 404,以及服务器在第二次调用 GET 端点时会发出的错误消息。 WinINET 似乎看到连接断开,并自动重试。

在客户端,我们希望 HttpSendRequest 在第一次调用时返回 false。

关于如何关闭此行为或在 HttpSendRequest 返回时检测它的任何想法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)