qt的http之post和get请求超时处理方案

本文分享了QT环境下HTTP GET和POST请求的超时处理方案,通过源码展示了如何实现请求的超时控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说的再多,不如贴源码。

 

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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值