Qt позволяет вам предоставлять пользовательский агент на основе URL, а не один пользовательский агент, независимо от того, какой это URL.Идея заключается в том, чтобы возвращать пользовательский агент при каждом создании новой веб-страницы:
class UserAgentWebPage : public QWebPage {
QString userAgentForUrl(const QUrl &url ) const {
return QString("My User Agent");
}
};
Чтобы использовать эту страницу вместо создаваемой стандартной страницы, вы можете установить эту страницу в элементе управления браузера.возражать перед выполнением запроса:
yourWebView->setPage(new UserAgentWebPage(parent));
Я бы на самом деле ожидал, что где-то будет присутствовать фабрика, которая будет гарантировать, что созданная веб-страница всегда определенного типа, но я ее не видел.
Еще один вариант должен заключаться в установке заголовка пользовательского агента в QNetworkRequest :
QNetworkRequest request = new QNetworkRequest();
request->setRawHeader(
QString("User-Agent").toAscii(),
QString("Your User Agent").toAscii()
);
// ... set the URL, etc.
yourWebView->load(request);
Вы на самом деле хотите проверить, является ли он toAscii()
или toUtf8()
или однимиз других вариантов, так как я не уверен точно, что позволяет стандарт HTTP.