2011-03-15 4 views
6

J'essaie de définir l'en-tête "User-Agent" dans mon petit webkit-browser, mais je n'ai pas compris.Comment définir l'agent utilisateur pour une requête QNetworkRequest dans PyQtWebkit?

Ce morceau de code:

self.web = QtWebKit.QWebView(self) 
... 
self.request = QNetworkRequest() 
self.request.setUrl(url) 
self.request.setRawHeader("User-Agent", QtCore.QByteArray ("TestUserAgent")) 
self.request.setRawHeader("Accept-Language", QtCore.QByteArray ("en ,*")) 
self.web.load(self.request) 

Dans cet exemple, est réglé correctement "Accept-Language", mais le "User-Agent" est toujours la valeur par défaut. Dites-moi s'il vous plaît, pourquoi? Comment définir le "User-Agent"?

Merci pour votre aide.

+10

j'utiliser un meilleur titre. –

+1

Haine d'être un sport de gâchis, parce que ce titre ("quelle est votre question de programmation? Être spécifique.") * Était * assez bon –

+0

Qu'est-ce que 'self.web'? Je ne pense pas que QNetworkAccessManager a une méthode de chargement. Ne devrait-il pas être 'self.web.get (self.request)'? –

Répondre

6

QWebView remplace le champ QNetworkRequest et définit l'en-tête User-Agent correspondant à la version de WebKit que vous utilisez. Pour modifier ce comportement par défaut, vous devez hériter de QWebPage, réimplémenter QWebPage.userAgentForUrl et définir la page de vos instances QWebView sur une instance de votre nouveau type QWebPage en utilisant QWebView.setPage.

Questions connexes