1
我想知道如何使用QWebPage獲取當前頁面的MIME類型。另外,如果可能的話,我希望能夠使用HEAD請求來做到這一點,所以如果它不是正確的MIME類型,我不知道要下載整個頁面。有任何想法嗎?QWebPage,獲取MIME類型
我想知道如何使用QWebPage獲取當前頁面的MIME類型。另外,如果可能的話,我希望能夠使用HEAD請求來做到這一點,所以如果它不是正確的MIME類型,我不知道要下載整個頁面。有任何想法嗎?QWebPage,獲取MIME類型
這是可能的。您將需要使用QNetworkAccessManager,QNetworkRequest和QNetworkReply類。
下面是一個(未經測試)的例子,但應該讓你開始使用HEAD請求檢索MIME類型頁面:
class TestClass: public QObject
{
Q_OBJECT
public:
TestClass();
void run();
public slots:
void ready(QNetworkReply * response);
protected:
QNetworkAccessManager * manager;
};
TestClass::TestClass()
{
manager = new QNetworkAccessManager(this);
this->connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(ready(QNetworkReply*)));
}
void TestClass::run()
{
QUrl url("http://www.widefido.com/");
manager->head(QNetworkRequest(url));
}
void TestClass::ready(QNetworkReply * response)
{
QVariant contentMimeType = response->header(QNetworkRequest::ContentTypeHeader);
qDebug() << contentMimeType;
}
注:如果服務器不發送回一個內容類型標頭,你的QVariant將無效。因此,在使用contentMimeType之前,請確保先檢查它是否有效。然後你可以轉換成一個QString來檢查你的有效MIME類型列表。
注意:QNetworkRequests是異步的,因此您必須實現信號插槽關係才能將值從QNetworkReploy中取出。您也可以在QxtSignalWaiter中查看它是否在線。
編輯了一個更完整的例子。 – jsherer 2011-05-06 17:51:40
感謝您的迴應! – 2011-05-06 19:01:13