gpt4 book ai didi

c++ - 使用 WinHTTP 下载 HTTP 文件的进度指示

转载 作者:行者123 更新时间:2023-11-30 01:32:38 28 4
gpt4 key购买 nike

我想在使用 WinHTTP 下载文件时在我的 C++ Windows 应用程序中实现一个进度条。知道怎么做吗?看起来好像 WinHttpSetStatusCallback 是我想要使用的,但我没有看到要查找的通知...或如何获得“下载百分比”...

帮助!

谢谢!

最佳答案

根据 the docs :

WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE

Data is available to be retrieved with WinHttpReadData. The lpvStatusInformation parameter points to a DWORD that contains the number of bytes of data available. The dwStatusInformationLength parameter itself is 4 (the size of a DWORD).

WINHTTP_CALLBACK_STATUS_READ_COMPLETE

Data was successfully read from the server. The lpvStatusInformation parameter contains a pointer to the buffer specified in the call to WinHttpReadData. The dwStatusInformationLength parameter contains the number of bytes read.

可能还有其他相关通知,但这两个似乎是关键。获得“百分比”不一定是微不足道的,因为您可能不知道获得了多少数据(并非所有下载都设置了内容长度...);您可以通过以下方式获取 header :

WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE

The response header has been received and is available with WinHttpQueryHeaders. The lpvStatusInformation parameter is NULL.

如果 Content-Length 可用,则可以通过跟踪每个“数据可用”通知的总字节数来计算百分比,否则你的猜测和我的一样好;-)。

关于c++ - 使用 WinHTTP 下载 HTTP 文件的进度指示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1407023/

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