Обновление VKMM 0.1.2
В процессе портирования программы VKMM сделал давно актуальный фикс — ВКонтакте уже довольно давно присылает 302 редирект на страницу ошибки, вместо прямого кода ошибки HTTP 404. С точки зрения QNetworkReply разумеется редирект не считается ошибкой, что приводило к зависаниям стрима, если плейлист был открыт давно (и ссылки протухли).
Обработка редиректа в Qt выполняется достаточно просто:
1. Присоединяемся к QNetworkReply::finished
connect(netReply, &QNetworkReply::finished, this, &mStream::onNetResult);
2. В слоте проверяем код статуса HTTP на редирект:
void mStream::onNetResult()
{
QNetworkReply* reply = qobject_cast(sender());
Q_CHECK_PTR(reply);
if (!reply) return;
switch (reply->error())
{
case QNetworkReply::NoError:
{
int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
switch (statusCode) {
case 301:
case 302:
case 307:
qDebug()