def createHTTPRequest(self, data): if isinstance(data, HTTPRequest): op, req, post = request.networkRequest() self.emit(SIGNAL('browserMakeForgedRequest'), op, req, post) else: try: cookies, post = None, None request = HTTPRequest() if isinstance(data, int): dct = self.history.getHistory(data) data = {} data['method'] = dct['type'] data['url'] = dct['request']['url'] data['headers'] = dct['request']['headers'] data['post'] = dct['request']['content-QByteArray'] data['cookies'] = dct['request']['cookies'] # fill data in the HTTPRequest request.setMethod(data['method']) request.setUrl(data['url']) request.setHeaders(data['headers']) # set tampered cookies in the current cookiejar if data['cookies']: request.setCookies(data['cookies']) self.cookieJar().setCookiesFromUrl(request.getQtCookies(), request.url) # process and store the POST data using post_history structure if data['post']: request.setData(data['post']) op, req, post = request.networkRequest() self.emit(SIGNAL('browserMakeForgedRequest'), op, req, post) except Exception, error: core.management.logger.exception("NetworkManager::createHTTPrequest- Error while replicating the HTTP request (Exception: %s)" % error)
def prepareRequest(self): # load all the components in an HTTPRequest structure if self.refresh_values.isEnabled(): # retrieve data self.nrequest = HTTPRequest() nrequest = { 'method': None, 'url': None, 'headers': [], 'cookies': [], 'post': [] } request_iter = QTreeWidgetIterPy(self.request) firstiter, state = True, "headers" for elmt in request_iter: if firstiter: nrequest['method'] = elmt.text(0) nrequest['url'] = elmt.text(1) firstiter = False else: # state: headers -> cookies -> post if "-" == elmt.text(0): continue if "headers" == state: if "Cookies" == elmt.text(0): state = "cookies" continue elif "POST data" == elmt.text(0): state = "post" continue elif "cookies" == state: if "POST data" == elmt.text(0): state = "post" continue nrequest[state].append((elmt.text(0), elmt.text(1))) self.nrequest.setMethod(nrequest['method']) self.nrequest.setUrl(nrequest['url']) self.nrequest.setHeaders(nrequest['headers']) # set tampered cookies in the current cookiejar if nrequest['cookies'] and 0 < len(nrequest['cookies']): self.nrequest.setCookies(nrequest['cookies']) self.netmanager.cookieJar().setCookiesFromUrl( self.nrequest.getQtCookies(), self.nrequest.url) # process and store the POST data using post_history structure if nrequest['post'] and 0 < len(nrequest['post']): self.nrequest.setData(nrequest['post'])