2011-03-15 4 views
6

मैं अपने छोटे वेबकिट-ब्राउज़र में हेडर "उपयोगकर्ता-एजेंट" सेट करने का प्रयास कर रहा हूं, लेकिन मुझे नहीं मिला।मैं PyQtWebkit में QNetworkRequest के लिए उपयोगकर्ता-एजेंट कैसे सेट करूं?

कोड का यह टुकड़ा:

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) 

इस उदाहरण में, "स्वीकार-भाषा" ठीक से सेट है, लेकिन "उपयोगकर्ता-एजेंट" हमेशा डिफ़ॉल्ट मान है। कृपया मुझे बताओ, क्यों? मैं "उपयोगकर्ता-एजेंट" कैसे सेट करूं?

सहायता के लिए धन्यवाद।

+10

के लिए धन्यवाद मैं एक बेहतर शीर्षक का प्रयोग करेंगे। –

+1

एक लूट-खेल होने से नफरत है, क्योंकि वह शीर्षक ("आपका प्रोग्रामिंग प्रश्न क्या है? विशिष्ट हो।") * बहुत अच्छा –

+0

था 'self.web' क्या है? मुझे नहीं लगता कि QNetworkAccessManager में एक लोड विधि है। यह 'self.web.get (self.request) नहीं होना चाहिए? –

उत्तर

6

QWebView QNetworkRequest फ़ील्ड को ओवरराइड करता है और आपके द्वारा उपयोग किए जा रहे वेबकिट के संस्करण के लिए उपयुक्त उपयोगकर्ता-एजेंट शीर्षलेख सेट करता है। इस डिफ़ॉल्ट व्यवहार को बदलने के लिए आपको QWebPage से उत्तराधिकारी होना चाहिए, QWebPage.userAgentForUrl को पुन: कार्यान्वित करें और QWebView.setPage का उपयोग करके अपने नए QWebPage प्रकार के उदाहरण पर अपने QWebView उदाहरणों के लिए पृष्ठ सेट करें।