Qt le permite proporcionar un agente de usuario basado en la URL en lugar de un único agente de usuario sin importar la URL. La idea entonces es devolver el agente de usuario cada vez que se crea una nueva página web:
class UserAgentWebPage : public QWebPage {
QString userAgentForUrl(const QUrl &url) const {
return QString("My User Agent");
}
};
Con el fin de utilizar esa página en lugar de la página estándar que se crea, se puede establecer la página en el objeto de control del navegador antes que realiza la solicitud:
yourWebView->setPage(new UserAgentWebPage(parent));
de hecho, me espera una fábrica de estar presente en alguna parte que se garantiza que la página web creada es siempre de un cierto tipo, pero no ver uno.
Sin embargo, otra opción debe ser la de establecer el encabezado de agente de usuario dentro de la QNetworkRequest:
QNetworkRequest request = new QNetworkRequest();
request->setRawHeader(
QString("User-Agent").toAscii(),
QString("Your User Agent").toAscii()
);
// ... set the URL, etc.
yourWebView->load(request);
usted realmente quiere comprobar si se trata de toAscii()
o toUtf8()
o una de las otras variantes ya que no estoy seguro exactamente lo que el estándar HTTP permite
Gracias Kaleb! Eso es lo que estaba buscando. –