Ubuntu Linux で POCO C++ ライブラリを使用してネットワーク ストリームからファイルを解凍しようとしていますが、「不正な状態」の例外で解凍に失敗します。HTTPResponse
ステータスと理由は302 Moved Temporarilyです。同時に、ブラウザでリンクをダウンロードして解凍できます。がこのような状態HTTPClientSession
になったときはどうすればよいですか?HTTPResponse
...
HTTPResponse res;
std::istream& rs = h_ses.receiveResponse (res);
if (res.getStatus () != HTTPResponse::HTTP_OK) {
poco_error (logger, "http response status: " + std::to_string (res.getStatus ()) + " " + res.getReason ());
}
if (!rs) {
poco_error (logger, "responese stream is in bad state: " + std::to_string (rs.rdstate()));
}
Decompress dec (rs, target_dir_.native ());
poco_debug (logger, "Unzipping: " + dl + " ...");
dec.EError += Poco::Delegate<Addon_Loader, std::pair<const Poco::Zip::ZipLocalFileHeader, const std::string> >(this, &Addon_Loader::on_decompress_error);
dec.decompressAllFiles ();
...