gpt4 book ai didi

c++ - 使用 pocolibrary 下载二进制文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:19:15 28 4
gpt4 key购买 nike

更新:我通过用 istreambuf_iterator 替换 istream_iterator 来修复它。

我尝试使用 poco 下载二进制文件。似乎它没有正确加载文件,因为内容长度!=实际下载的长度。

        Poco::Net::HTTPClientSession session(uri.getHost(), uri.getPort());
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, uri.getPathAndQuery(), Poco::Net::HTTPMessage::HTTP_1_1);

Poco::Net::HTTPResponse response;

session.sendRequest(request);
std::istream& rs = session.receiveResponse(response);
int contentlen = response.getContentLength();

std::vector<char> bytes;
std::copy(std::istream_iterator<char>(rs), std::istream_iterator<char>(), std::back_inserter(bytes));
int byteslen = bytes.size();

这里是 contentlen=297008 和 bytelen=290420。结果,下载的图像已损坏。如果我使用 curl 下载图像,它可以完美运行,下载大小 = 297008。怎么了?提前致谢。

最佳答案

参见 Poco forum answer .

另见 download example :

std::auto_ptr<std::istream> pStr(URIStreamOpener::defaultOpener().open(uri));
StreamCopier::copyStream(*pStr.get(), std::cout);

关于c++ - 使用 pocolibrary 下载二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28983557/

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