poco http下载文件为何长度不一样?文件不正确呢?
问题:
用下边程序下载下来的文件用winrar解压时提示不正确,
但用IE下载下来是好使的
改自poco 范例:Net/samples/download
程序如下
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include <ctime>
#include <Foundation/Logger.h>
#include <Foundation/PatternFormatter.h>
#include <Foundation/FormattingChannel.h>
#include <Foundation/FileChannel.h>
#include <Foundation/RegularExpression.h>
#include <Foundation/Path.h>
#include <Foundation/StreamCopier.h>
#include <Foundation/URI.h>
#include <Foundation/URIStreamOpener.h>
#include <Net/HTTPStreamFactory.h>
#include <Net/FTPStreamFactory.h>
int main(int argc, char** argv)
{
HTTPStreamFactory::registerFactory();
FTPStreamFactory::registerFactory();
if (argc != 2)
{
Path p(argv[0]);
std::cerr << "usage: " << p.getBaseName() << " <uri>" << std::endl;
std::cerr << " Download <uri> to standard output." << std::endl;
std::cerr << " Works with http, ftp and file URIs." << std::endl;
return 1;
}
try
{
URI uri("http://www.amazing3d2.com/free3d2/cleve3ds.zip");
std::auto_ptr<std::istream> pStr(URIStreamOpener::defaultOpener().open(uri));
ofstream fs("c:\\cleve3ds.zip");
if(!fs)
{
throw exception();
}
StreamCopier::copyStream(*pStr.get(), fs);
}
catch (Exception& exc)
{
std::cerr << exc.displayText() << std::endl;
return 1;
}
return 0;
}