crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Получение файла по сети, как среагировать на редирект?
dejavu
  опции профиля:
сообщение 12.5.2015, 10:23
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 12.5.2015
Пользователь №: 4383

Спасибо сказали: 0 раз(а)




Репутация:   0  


Привет всем.
Получаю файлы по сети так:
QNetworkAccessManager * manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(fileIsReady(QNetworkReply*)) );
manager->get(QNetworkRequest(QUrl("http://example.com/abrakadabra.html")));
...
void CClass::fileIsReady( QNetworkReply * reply)
{
  QTemporaryFile temp_file;
  temp_file.write(reply->readAll());
}
Файлы получаются без проблем. НО! Если стоит редирект на другой URL, то скачивается html файл с редиректом.
Может я туплю, подскажите, как поймать этот так его растак редирект? Да и не плохо было бы ловиь 404 и прочие ошибки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 12.5.2015, 11:04
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  



   QVariant varRedirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
   QUrl urlRedirect = varRedirect.toUrl();
   if(!urlRedirect.isEmpty())
   {
      qDebug() << "Redirection url: " << urlRedirect.toString();
      // Здесь заново получаешь страницу urlRedirect.toString()
   }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 14:42