Я пытаюсь разархивировать файл из сетевого потока, используя библиотеку POCO C++ в Ubuntu Linux, но распаковка завершается с ошибкой с исключением «Недопустимое состояние». HTTPResponse
статус и причина: 302 Временно перемещен. В то же время я могу скачать и разархивировать ссылку с помощью браузера. Что мне делать с 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 ();
...