gpt4 book ai didi

c - 为什么 WinHttpQueryDataAvailable 说有 0 个字节可用?

转载 作者:可可西里 更新时间:2023-11-01 10:01:01 25 4
gpt4 key购买 nike

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

知道这是什么意思吗?它通常工作正常(从相机读取 JPEG 流),但偶尔会卡在这里(提示代码重新连接)。

根据 MSDN,WinHttpQueryDataAvailable 不应返回:“如果 session 是同步的,则请求会等待数据可用。”

代码摘录在这里:

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,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 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!

最佳答案

已成功接收到底层HTTP响应,但为空(即零长度响应)或所有数据已读取并关闭。 WinHttpQueryDataAvailable 通过返回 TRUE 来表明这一点,仍然显示可用数据的计数为零。

想想:

HTTP/1.0 200 OK
Content-Length: 0

关于c - 为什么 WinHttpQueryDataAvailable 说有 0 个字节可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com