1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
| import typing
import mitmproxy.addonmanager import mitmproxy.connections import mitmproxy.http import mitmproxy.log import mitmproxy.tcp import mitmproxy.websocket import mitmproxy.proxy.protocol
class Events: def http_connect(self, flow: mitmproxy.http.HTTPFlow): """ An HTTP CONNECT request was received. Setting a non 2xx response on the flow will return the response to the client abort the connection. CONNECT requests and responses do not generate the usual HTTP handler events. CONNECT requests are only valid in regular and upstream proxy modes. """
def requestheaders(self, flow: mitmproxy.http.HTTPFlow): """ HTTP request headers were successfully read. At this point, the body is empty. """
def request(self, flow: mitmproxy.http.HTTPFlow): """ The full HTTP request has been read. """
def responseheaders(self, flow: mitmproxy.http.HTTPFlow): """ HTTP response headers were successfully read. At this point, the body is empty. """
def response(self, flow: mitmproxy.http.HTTPFlow): """ The full HTTP response has been read. """
def error(self, flow: mitmproxy.http.HTTPFlow): """ An HTTP error has occurred, e.g. invalid server responses, or interrupted connections. This is distinct from a valid server HTTP error response, which is simply a response with an HTTP error code. """
def tcp_start(self, flow: mitmproxy.tcp.TCPFlow): """ A TCP connection has started. """
def tcp_message(self, flow: mitmproxy.tcp.TCPFlow): """ A TCP connection has received a message. The most recent message will be flow.messages[-1]. The message is user-modifiable. """
def tcp_error(self, flow: mitmproxy.tcp.TCPFlow): """ A TCP error has occurred. """
def tcp_end(self, flow: mitmproxy.tcp.TCPFlow): """ A TCP connection has ended. """
def websocket_handshake(self, flow: mitmproxy.http.HTTPFlow): """ Called when a client wants to establish a WebSocket connection. The WebSocket-specific headers can be manipulated to alter the handshake. The flow object is guaranteed to have a non-None request attribute. """
def websocket_start(self, flow: mitmproxy.websocket.WebSocketFlow): """ A websocket connection has commenced. """
def websocket_message(self, flow: mitmproxy.websocket.WebSocketFlow): """ Called when a WebSocket message is received from the client or server. The most recent message will be flow.messages[-1]. The message is user-modifiable. Currently there are two types of messages, corresponding to the BINARY and TEXT frame types. """
def websocket_error(self, flow: mitmproxy.websocket.WebSocketFlow): """ A websocket connection has had an error. """
def websocket_end(self, flow: mitmproxy.websocket.WebSocketFlow): """ A websocket connection has ended. """
def clientconnect(self, layer: mitmproxy.proxy.protocol.Layer): """ A client has connected to mitmproxy. Note that a connection can correspond to multiple HTTP requests. """
def clientdisconnect(self, layer: mitmproxy.proxy.protocol.Layer): """ A client has disconnected from mitmproxy. """
def serverconnect(self, conn: mitmproxy.connections.ServerConnection): """ Mitmproxy has connected to a server. Note that a connection can correspond to multiple requests. """
def serverdisconnect(self, conn: mitmproxy.connections.ServerConnection): """ Mitmproxy has disconnected from a server. """
def next_layer(self, layer: mitmproxy.proxy.protocol.Layer): """ Network layers are being switched. You may change which layer will be used by returning a new layer object from this event. """
def configure(self, updated: typing.Set[str]): """ Called when configuration changes. The updated argument is a set-like object containing the keys of all changed options. This event is called during startup with all options in the updated set. """
def done(self): """ Called when the addon shuts down, either by being removed from the mitmproxy instance, or when mitmproxy itself shuts down. On shutdown, this event is called after the event loop is terminated, guaranteeing that it will be the final event an addon sees. Note that log handlers are shut down at this point, so calls to log functions will produce no output. """
def load(self, entry: mitmproxy.addonmanager.Loader): """ Called when an addon is first loaded. This event receives a Loader object, which contains methods for adding options and commands. This method is where the addon configures itself. """
def log(self, entry: mitmproxy.log.LogEntry): """ Called whenever a new log entry is created through the mitmproxy context. Be careful not to log from this event, which will cause an infinite loop! """
def running(self): """ Called when the proxy is completely up and running. At this point, you can expect the proxy to be bound to a port, and all addons to be loaded. """
def update(self, flows: typing.Sequence[mitmproxy.flow.Flow]): """ Update is called when one or more flow objects have been modified, usually from a different addon. """
|