Marian Paździoch
Marian Paździoch

Reputation: 9093

How to modify HTTP response body with Charles Proxy rewrite tool and regex?

I'm trying to change HTTP response body with Charles Proxy using rewrite tool / regex? The response is a JSON.

So part of the returned response JSON body is:

"unavailablePosts": ["AA", "BB"],

and what I want is:

"unavailablePosts": "XXX",

I try to set up Charles' rewrite like this:

enter image description here

So the regex is like:

"unavailablePosts": \[(.*)\],

But ... (as I'm asking this question) it does not work, i.e. nothing is changed in response body.

Upvotes: 17

Views: 17581

Answers (2)

Andrii Koshman
Andrii Koshman

Reputation: 21

I had similar issue. In this case Regex is ("unavailablePosts":)"[\s\S]*?" Value for replace is $1"anything"

Upvotes: 2

Wiktor Stribiżew
Wiktor Stribiżew

Reputation: 626747

I believe there are some linebreaks in between the values, and to match them you need to add \s* (zero or more whitespaces) around : and use [\s\S]*? (any 0+ chars but as few as possible as *? is a lazy quantifier) to match the substring between [ and ],:

 "unavailablePosts"\s*:\s*\[([\s\S]*?)\],

Upvotes: 10

Related Questions