Qt Http連接配接使用到的類有:QNetworkAccessManager、QNetworkRequest和 QNetworkReply;
連接配接逾時判斷使用到的類有: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