Пишу класс для работы с API Tumblr'а. Нужно либо скачать аватар пользователя, либо получить прямую ссылку на него (в действительности, всё сводится к последнему варианту).
В
документации по API указано, что необходимо использовать URL вида:
api.tumblr.com/v2/blog/mrvisor.tumblr.com/avatar/64и что прямая ссылка на изображение будет передана через поле Location в http-заголовке. Действительно, так и есть (если проверять через, например,
bertal.ru)
Однако... QNetworkAccessManager так совсем не считает!
Что имею (код привожу частично, все необходимые библиотеки подключены):
void tumblrApi::getAvatar(int size = 64)
{
QString uri = baseHostname + blogURI + blogHostname + "/avatar/" + QString::number(size);
connect(httpManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(responseReceived(QNetworkReply*)));
QNetworkRequest request;
request.setUrl(QUrl(uri));
request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5");
httpManager->get(request);
}
void tumblrApi::responseReceived(QNetworkReply *reply)
{
qDebug() << reply->readAll();
qDebug() << reply->rawHeaderList();
}
на что мне QNetworkReply отвечает предательским молчанием. Никаких заголовков, никаких данных, количество доступных для чтения байт = 0.
Как быть? И куда копать?
P.S. такое ощущение, что перенаправления не обрабатываются вообще (прихожу к этому выводу после теста с url'ом google.com - перенапраления на google.ru не произошло, reply->readAll() вывел мне текст странички с кодом 301 и предложением перейти на google.ru самостоятельно, в Location'е нужного url'а, разумеется, не было).