MCPcopy
hub / github.com/mitmproxy/mitmproxy / get

Method get

mitmproxy/tools/web/app.py:717–753  ·  view source on GitHub ↗
(self, flow_id, message, content_view)

Source from the content-addressed store, hash-verified

715 return ret
716
717 def get(self, flow_id, message, content_view) -> None:
718 flow = self.flow
719 assert isinstance(flow, (HTTPFlow, TCPFlow, UDPFlow))
720
721 if self.request.arguments.get("lines"):
722 max_lines = int(self.request.arguments["lines"][0])
723 else:
724 max_lines = None
725
726 if message == "messages":
727 messages: list[TCPMessage] | list[UDPMessage] | list[WebSocketMessage]
728 if isinstance(flow, HTTPFlow) and flow.websocket:
729 messages = flow.websocket.messages
730 elif isinstance(flow, (TCPFlow, UDPFlow)):
731 messages = flow.messages
732 else:
733 raise APIError(400, f"This flow has no messages.")
734 msgs = []
735 for m in messages:
736 d = self.message_to_json(
737 view_name=content_view,
738 message=m,
739 flow=flow,
740 max_lines=max_lines,
741 from_client=m.from_client,
742 timestamp=m.timestamp,
743 )
744 msgs.append(d)
745 if max_lines:
746 max_lines -= d["text"].count("\n") + 1
747 assert max_lines is not None
748 if max_lines <= 0:
749 break
750 self.write(msgs)
751 else:
752 message = getattr(self.flow, message)
753 self.write(self.message_to_json(content_view, message, flow, max_lines))
754
755
756class Commands(RequestHandler):

Callers

nothing calls this directly

Calls 6

message_to_jsonMethod · 0.95
APIErrorClass · 0.85
getMethod · 0.45
appendMethod · 0.45
countMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected