def request_obj(self, url, headers=None, body=None): """ Return a QNetworkRequest object """ request = QNetworkRequest() request.setUrl(to_qurl(url)) request.setOriginatingObject(self.web_page.mainFrame()) if headers is not None: self.web_page.skip_custom_headers = True self._set_request_headers(request, headers) if body and not request.hasRawHeader("content-type"): # there is POST body but no content-type # QT will set this header, but it will complain so better to do this here request.setRawHeader("content-type", "application/x-www-form-urlencoded") return request