微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么WinHttpQueryDataAvailable说0字节可用?

同步操作。 GetLastError = 0, WinHttpQueryDataAvailable本身返回TRUE(即OK),但读取的字节数= 0

任何想法这是什么意思? 它通常工作正常(从相机读取JPEGstream),但偶尔会卡在这里提示代码重新连接)。

根据MSDN, WinHttpQueryDataAvailable不应该返回:“如果会话是同步的,请求等待,直到数据变为可用。

代码解压到这里:

在Visual Studio 2010上使用Windows XP上的CCCC

C ++dynamic发布库和debugging库有什么区别?

当进程以pipe理员身份运行时,获取用户名()

在C#中使用ALT + TAB / ESC循环打开窗口,并使当前窗口处于焦点并被强制为最大化(如果已经最小化为任务栏)?

在AF_UNIX SOCK_DGRAM中使用'抽象套接字'

g_HSession = WinHttpOpen( L"Jet",WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHTTP_NO_PROXY_BYPASS,0 ); ResultsOk = WinHttpSendRequest( hRequest,WINHTTP_NO_ADDITIONAL_HEADERS,WINHTTP_NO_REQUEST_DATA,0); // End the request. if (ResultsOk) { ResultsOk = WinHttpReceiveResponse( hRequest,NULL ); DWORD BytesToRead = 0; if (WinHttpQueryDataAvailable( hRequest,&BytesToRead )) { if (BytesToRead) // THIS IS SOMETIMES 0 - seems wrong to me { if (WinHttpReadData( hRequest,pReadPos,min(BytesToRead,(unsigned)SizeRemaining),&NumRead )) { ...etc!

文件的O_DIRECT标志

每当调用malloc / free时输出到stderr

如何从双数组中创build声音并在扬声器上播放

读者作家 – 作家线程总是被困在多个读者线程中

一个glibc api的系统调用

底层的HTTP响应已经成功接收,但是它是空的(即零长度响应)或者所有的数据已经被读取和关闭。 WinHttpQueryDataAvailable表示通过返回TRUE仍然显示可用数据的零计数。

考虑到:

HTTP/1.0 200 OK Content-Length: 0

我假设你的BytesToRead变量是一个无符号的long,因为它应该是?

您可以尝试重构您的代码,使其看起来更像此页面 “示例”标题下的示例。

这个解决方案有帮助吗?

与问题无关,但是如果你使用的是Visual Studio,你可以进入你的项目设置(如Project Properties> Project Defaults> Character Set),然后你不必像你在g_HSession = WinHttpOpen( L"Jet"...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐