Duplicate Flow and Replay

Hi!

My old script with mitmproxy 0.15 was works great, but when I switched to 1.0.2 version, duplicate and replay not works as I expected and I don’t know how fix it.

def makeDictAndRequest(data):
   list = foo(data)
   for item in list:
      dict = createDict(item)
      makeRequest(dict)
      time.sleep(3)

makeRequest(dict):
    global allData
    nf = allData['flow'].copy() #Previos flow saved on allData global variable
    newFlow = changeFlowRequest(nf, dict)
    ctx.master.replay_request(newFlow)

The behaviour I want is make a new request per every item in list and every request is paused three seconds before the next request, but I get all requests without pause and without order.

How can I get pause between requests and in the same order in list.

Another question is how can I create a new thread with a replay request?

Hi, @paskyorg, did you have any luck in replaying the request? Actually, there is this dup_and_replay script in the mitmproxy repository. I tested that script but “ctx.master.replay_request” keeps sending http request without pause.
Do you know how to send the request exactly once?

When you play this script, replay_request makes a new call to request function. It’s recursive.

Put a condition to break this behaviour or do replay_request in response function, instead request.

@ppsun You can do this:

   ctx.master.replay_request() ```

Thanks for the advice!

Thanks. This works perfectly!