如何在HttpEndRequest上配置超时?
How do I configure the timeout on HttpEndRequest?
背景:我正在维护一个旧的c++应用程序,它与我公司的服务器通信。公司里没有人(包括我)对c++或其他正在使用的技术有任何重要的经验。
问题:我正试图上传一个代码看起来像这样的文件:
if(HttpSendRequestEx(hReq, &InBuf, NULL, HSR_INITIATE, 0))
{
unsigned long ulWrote;
BOOL bWrote;
bWrote = InternetWriteFile(hReq, postData, postDataLength, &ulWrote);
if(bWrote)
{
if(!HttpEndRequest(hReq, NULL, 0, 0))
{
DWORD errorCode = GetLastError(); // 12002 - timeout
}
}
}
这里有很多其他的错误处理,但我已经把它剥离到我看到问题的地方。
小文件上传没有问题,大文件(~25MB)遇到超时。即使发生了超时,很多时候文件都会上传成功,所以我不认为这是服务器端的问题。只是抑制或忽略错误似乎是错误的,但我还没有找到任何方法来设置超时到一个更合理的水平
WININET提供InternetSetOption()
来控制其行为,在您的情况下,请查看INTERNET_OPTION_SEND_TIMEOUT
标志。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 无法找到/读取配置文件.conf-FileIOException
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 一种在C++中读取TXT配置文件的简单方法
- 生成MRPT库时cmake配置失败
- C++减少modbus_connect超时
- FFMPEG配置文件级别id大小无效
- 如何通过Conan和CMake找到用于pkg配置的.pc文件
- 没有超时的C++条件变量
- 配置文件解析器仅返回以前的值
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 是否可以配置提升日志刷新?
- 如何在C++(VS2010)中设置超时读取USB端口?
- 如何配置Visual Studio Code以使用cygwin,cmake和gcc进行调试
- C++卷曲柱在curl_easy_perform超时
- C/C++:打印(配置)头文件的内容
- 如何在Qt 4.8中阻止/忽略/丢弃早于特定超时的用户输入事件
- Mongo C++ 驱动程序 - 如何更改超时配置
- 如何在HttpEndRequest上配置超时?