说的再多,不如贴源码。
get请求:
QByteArray HttpUtil::getData(QNetworkRequest request /*= QNetworkRequest()*/, const QByteArray & data /*= QByteArray()*/)
{
QTimer timer;
timer.setInterval(5000); // 设置超时时间 5 秒
timer.setSingleShot(true); // 单次触发
m_networkReply = m_networkAccessManager->get(request);
//connect(m_networkReply, &QIODevice::readyRead, this, &HttpUtil::onReadyRead);
QEventLoop eventLoop;
connect(&timer, &QTimer::timeout, &eventLoop, &QEventLoop::quit);
connect(m_networkReply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
timer.start();
eventLoop.exec();
if (timer.isActive())
{
timer.stop();
QVariant httpStatusCode =
m_networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
QVariant redirectionTargetUrl =
m_networkReply->attribute(QNetworkRequest::RedirectionTargetAttribute);
int totlalLength = m_networkReply->rawHeader("Content-Length").toInt();