特定の Web サイトの HTTP リクエストをオンザフライで変更するために、HTTP 用の Python 中間者 (MITM) プロキシであるmitmproxyを使用しています。
ゴール:
テスト目的で、HTTP 要求を受信すると、それを保存する必要があり ( HTTPFlowオブジェクトを受信します)、次に同じ要求が行われるときに、まったく同じdata/html/header/resourses/ecc を再送信する必要があります。ブラウザに。
問題:
明らかな解決策は、オブジェクトをシリアライズすることですが、シリアライズ可能ではありません!
テスト中にプロキシを再起動する必要があるため、単純にメモリに保持することはできません
目標を達成するために何ができますか?
詳細:
私はすでにpickle、cPickle、およびmarshalを次のエラーで試しました:
__getstate__ を定義せずに __slots__ を定義するクラスはピクルできません
CDataGCP オブジェクトをピクルできません
- ValueError: 整列化できないオブジェクト
アイデア:
- 1) 元のオブジェクトを変更してシリアライズ可能にするのは、どのくらい悪い考えですか? どうすればそれを行うことができますか?
- 2) メイン プロセスが、単にオブジェクトをメモリに保持する 2 番目の常時稼働の python プロセスと通信する場合はどうなりますか? 彼らはまだそれらをシリアル化するobjを通信する必要がありますか?