天天看點

QT分析之網絡程式設計(五)

今天分析QNetworkAccessManager、QNetworkRequest和QNetworkReply組成的進階抽象API序列。在動手之前,把doc中有關QNetworkAccessManager的介紹看了一遍。其使用方法大緻是:

QNetworkAccessManager * manager = new QNetworkAccessManager(this);

QNetworkRequest request;

request.setUrl(QUrl("http://www.baidu.com"));

QNetworkReply * reply = manager->get(request);

connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));

關鍵是後面的三行:設定URL、發送并擷取響應、讀取資料。

在QT自帶的例子中也有QNetworkAccessManager的應用:downloadmanager

單步跟蹤就用downloadmanager這個例子。

在動手跟蹤之前,總結了幾個問題:

1、QNetworkAccessManager是更進階的抽象,那麼怎麼跟QTcpSocket/QUdpSocket聯系起來的呢?

2、如果沒有跟QTcpSocket聯系起來,那麼又是怎麼跟WSA序列WinAPI聯系起來的呢?

3、整個邏輯過程是怎麼的呢?

4、擷取的(圖檔或者網頁)資料儲存在什麼地方?

5、跟HTTP或者FTP有關的Cookie、認證等怎麼實作的?

6、HTTP的Session相關功能實作了嗎?怎麼實作的?

繼續閱讀