C++ 使用Poco::Net::StreamSocket从internet下载文件?

C++ 使用Poco::Net::StreamSocket从internet下载文件?,c++,poco-libraries,C++,Poco Libraries,我想使用Poco::Net::StreamSocket从internet下载文件。 我需要一个源模板。 谁来帮帮我 请查看的第11页,它应该有助于您开始学习。此代码适用于我: #include "Poco/URIStreamOpener.h" #include "Poco/StreamCopier.h" #include "Poco/Path.h" #include "Poco/URI.h" #include "Poco/Exception.h" #include "Poco/Net/HTTPS

我想使用Poco::Net::StreamSocket从internet下载文件。 我需要一个源模板。
谁来帮帮我

请查看的第11页,它应该有助于您开始学习。

此代码适用于我:

#include "Poco/URIStreamOpener.h"
#include "Poco/StreamCopier.h"
#include "Poco/Path.h"
#include "Poco/URI.h"
#include "Poco/Exception.h"
#include "Poco/Net/HTTPStreamFactory.h"
#include "Poco/Net/FTPStreamFactory.h"
#include <memory>
#include <iostream>

using Poco::URIStreamOpener;
using Poco::StreamCopier;
using Poco::Path;
using Poco::URI;
using Poco::Exception;
using Poco::Net::HTTPStreamFactory;
using Poco::Net::FTPStreamFactory;

int main(int argc, char** argv)
{
  HTTPStreamFactory::registerFactory(); // Must register the HTTP factory to stream using HTTP
  FTPStreamFactory::registerFactory(); // Must register the FTP factory to stream using FTP

  string url = "http://somefile.mp3";
  string filePath = "C:\\somefile.mp3";

  // Create and open a file stream
  std::ofstream fileStream;
  fileStream.open(filePath, ios::out | ios::trunc | ios::binary);

  // Create the URI from the URL to the file.
  URI uri(url);

  // Open the stream and copy the data to the file. 
  std::auto_ptr<std::istream> pStr(URIStreamOpener::defaultOpener().open(uri));
  StreamCopier::copyStream(*pStr.get(), fileStream);

  fileStream.close();
}
#包括“Poco/URIStreamOpener.h”
#包括“Poco/StreamCopier.h”
#包括“Poco/Path.h”
#包括“Poco/URI.h”
#包括“Poco/Exception.h”
#包括“Poco/Net/HTTPStreamFactory.h”
#包括“Poco/Net/FTPStreamFactory.h”
#包括
#包括
使用Poco::URIStreamOpener;
使用Poco::StreamCopier;
使用Poco::Path;
使用Poco::URI;
使用Poco::Exception;
使用Poco::Net::HTTPStreamFactory;
使用Poco::Net::FTPStreamFactory;
int main(int argc,字符**argv)
{
HTTPStreamFactory::registerFactory();//必须将HTTP工厂注册为使用HTTP流
FTPStreamFactory::registerFactory();//必须注册FTP工厂以使用FTP进行流式传输
字符串url=”http://somefile.mp3";
string filePath=“C:\\somefile.mp3”;
//创建并打开文件流
流文件流的std::of;
open(filePath,ios::out | ios::trunc | ios::binary);
//创建从URL到文件的URI。
URI(url);
//打开流并将数据复制到文件中。
std::auto_ptr pStr(URIStreamOpener::defaultOpener().open(uri));
StreamCopier::copyStream(*pStr.get(),fileStream);
fileStream.close();
}

上面的许多内容来自找到的示例代码。

欢迎使用stackoverflow。请花几分钟时间阅读和阅读,以及。它将帮助您发布更好的问题。是否像浏览器一样通过HTTP下载文件?您可以使用Poco的HTTPClientSession来实现这一点,请参见文档