def _create_error_response(self, request, response, exception, trace=None): """ :param request: The HTTP request which triggered the exception :param response: The response (if any) we were processing and triggered the exception :param exception: The exception instance :return: A mitmproxy response object ready to send to the flow """ def replace_new_lines(in_str): return in_str.replace('\n', '<br/>') context = {'exception_message': str(exception), 'http_request': request.dump()} if trace is not None: context['traceback'] = replace_new_lines(trace) content = render('error.html', context) headers = Headers(( ('Connection', 'close'), ('Content-type', 'text/html'), )) http_response = HTTPResponse(500, content.encode('utf-8'), headers, request.get_uri(), request.get_uri(), msg='Server error') return http_response
def _create_terminate_response(self, http_response): content = render('spiderman_end.html', {}) headers = Headers(( ('Connection', 'close'), ('Content-type', 'text/html'), )) http_response = HTTPResponse(200, content.encode('utf-8'), headers, http_response.get_uri(), http_response.get_uri(), msg='Ok') return http_response
def on_request_drop(self, http_request): """ When the UI calls "drop request" we need to modify our queues :param http_request: The request to drop :return: None, simply queue a "Request drop HTTP response" """ content = render("drop.html", {}) headers = Headers((("Connection", "close"), ("Content-type", "text/html"))) http_response = HTTPResponse( 403, content.encode("utf-8"), headers, http_request.get_uri(), http_request.get_uri(), msg="Request drop" ) self.parent_process.requests_already_modified.put(http_response)
def on_request_drop(self, http_request): """ When the UI calls "drop request" we need to modify our queues :param http_request: The request to drop :return: None, simply queue a "Request drop HTTP response" """ content = render('drop.html', {}) headers = Headers(( ('Connection', 'close'), ('Content-type', 'text/html'), )) http_response = HTTPResponse(403, content.encode('utf-8'), headers, http_request.get_uri(), http_request.get_uri(), msg='Request drop') self.parent_process.requests_already_modified.put(http_response)