基于VS2010_Qt4.8.6(32位)的发起Http连接请求演示程序

Qt Http连接使用到的类有:QNetworkAccessManagerQNetworkRequestQNetworkReply

连接超时判断使用到的类有:QTimer

程序截图如下:

代码如下:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui/QMainWindow>
#include "ui_mainwindow.h"
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QTimer>
class mainWindow : public QMainWindow
{
	Q_OBJECT
public:
	mainWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
	~mainWindow();
public slots:
	void on_pushButton_clicked();
	void slot_finished(QNetworkReply *);
	void slot_timeout();				
private:
	Ui::mainWindowClass ui;
	QNetworkAccessManager* m_pNetworkManager;	//网络管理类  
	QNetworkReply* m_pNetworkReply;			//请求返回信息  
	QTimer* m_pTimer;				//请求超时计时器  
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include <QMessageBox>
mainWindow::mainWindow(QWidget *parent, Qt::WFlags flags)
	: QMainWindow(parent, flags)
{
	ui.setupUi(this);
	m_pNetworkManager = new QNetworkAccessManager(this);			
	connect(m_pNetworkManager,SIGNAL(finished(QNetworkReply*)),		 
		this,SLOT(slot_finished(QNetworkReply*))); 
	//超时
	m_pTimer = new QTimer;  
	connect(m_pTimer,SIGNAL(timeout()),this,SLOT(slot_timeout()));	  
}

mainWindow::~mainWindow()
{
	if (m_pNetworkManager)
	{
		delete m_pNetworkManager;
		m_pNetworkManager = NULL;
	}
}

void mainWindow::on_pushButton_clicked()		//发起连接
{
	m_pNetworkReply = m_pNetworkManager->get(QNetworkRequest(QUrl("http://128.0.0.1"))); //发送请求 
	m_pTimer->start(1000);  
}

void mainWindow::slot_finished(QNetworkReply *reply)
{
	m_pTimer->stop();				
	reply->deleteLater();
	QMessageBox::information(NULL,"提示","连接网络成功!"); 
}
 
void mainWindow::slot_timeout()  
{  
	m_pTimer->stop();				
	m_pNetworkReply->deleteLater();
	QMessageBox::information(NULL,"提示","连接网络失败!"); 
}  

源代码下载地址:

http://download.csdn.net/download/sgwxy/10270019

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值