Qt consente di fornire un agente utente basato sull'URL anziché su un singolo agente utente indipendentemente dall'URL. L'idea quindi è di restituire l'agente utente in qualsiasi momento si crea una nuova pagina web:
class UserAgentWebPage : public QWebPage {
QString userAgentForUrl(const QUrl &url) const {
return QString("My User Agent");
}
};
Per poter utilizzare quella pagina anziché la pagina standard che viene creato, è possibile impostare la pagina per l'oggetto di controllo browser prima effettua la richiesta:
yourWebView->setPage(new UserAgentWebPage(parent));
vorrei davvero si aspettano una fabbrica di essere presente da qualche parte che garantisce che la pagina web creata è sempre di un certo tipo, ma non ho visto uno.
Ancora un'altra opzione dovrebbe essere quello di impostare l'intestazione agente utente all'interno della QNetworkRequest:
QNetworkRequest request = new QNetworkRequest();
request->setRawHeader(
QString("User-Agent").toAscii(),
QString("Your User Agent").toAscii()
);
// ... set the URL, etc.
yourWebView->load(request);
si sarebbe effettivamente desidera controllare se è toAscii()
o toUtf8()
o una delle altre varianti come io non sono esattamente sicuro ciò che lo standard HTTP consente.
fonte
2010-10-11 14:32:22
Grazie Kaleb! Questo è quello che stavo cercando. –