Я пытаюсь использовать HTML-код QNetworkAccessManager
с URL-адресом. statusCode - 200. Отладка reply->readAll()
имеет длину данных 35988. Но если я использую qDebug()
, он печатает пустой.
My окружающая среда windown7 x32
Chinese +qt5.5 x32(mingw)
. Я копирую этот код в linux(qt5.5 x64)
. работает.QT5 qDebug() << QByteArray empty
Может печатать содержимое HTML, почему?
, пожалуйста, помогите мне.
мой код:
QEventLoop loop;
QTimer timer;
QNetworkRequest request;
request.setUrl(QUrl("http://mp.weixin.qq.com/s?__biz=MzA4MjAzMzg4NA==&mid=208317469&idx=4&sn=0928285db7c368e276e85519b3d0763b&3rd=MzA3MDU4NTYzMw==&scene=6#rd"));
request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36");
request.setRawHeader("Accept-Language", "zh-CN,zh;q=0.8");
request.setRawHeader("Accept-Encoding", "none");
request.setRawHeader("Accept-Charset", "utf-8");
request.setRawHeader("Connection", "keep-alive");
request.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
QNetworkReply *reply = manager->get(request);
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
timer.start(timeout);//超时10秒
loop.exec();
if(reply->error()){
qDebug()<<"error";
}
QByteArray res= reply->readAll();
reply->close();
reply->deleteLater();
// QString str = QString::fromUtf8(res.data(), res.size());
qDebug()<<statusCode;
qDebug()<<res;
Четко изложите свой вопрос. ** его трудно изменить даже ** –