libcurl7.20.0とopenssl0.9.8l(ただし、ライブラリを7.29.0と1.0.1eに更新しました)、Windows 7を使用してファイルをダウンロードしようとしていますが、amd64で大きなファイルをダウンロードするためにすべてがコンパイルされています。私はcurlppをcurlのラッパーとして使用しています。問題は、2GBに達するとすぐに、ダウンロードがエラーで停止することFailed writing body (0 != 8999)
です。リクエストを行うために使用するコードは次のとおりです。
boost::shared_ptr<curlpp::Easy> curl_request(boost::make_shared<curlpp::Easy>());
curl_request.setOpt(new curlpp::options::HttpVersion(CURL_HTTP_VERSION_1_0));
curl_request.setOpt(new curlpp::options::Timeout(3600));
curl_request.setOpt(new curlpp::options::SslVerifyHost(0));
curl_request.setOpt(new curlpp::options::SslVerifyPeer(0));
curl_request->setOpt(new curlpp::options::Url(request_uri));
if (cookies.size() == 0) {
curl_request->setOpt(new curlpp::options::CookieList("dummy"));
} else {
BOOST_FOREACH(const std::string &cookie, m_cookies) {
curl_request->setOpt(new curlpp::options::CookieList(cookie));
}
}
curl_request->setOpt(new curlpp::options::Post(true));
curl_request->setOpt(new curlpp::options::PostFields(query_string));
curl_request->setOpt(new curlpp::options::WriteStream(stream.get()));
try {
curl_request->perform();
} catch (std::exception &ex) {
error = true;
std::cerr << "caught Unknown error: " << ex.what() << std::endl;
}
編集ストリームは文字列ストリームであり、MSVS2008を使用しています