Simply re-use `Faraday::Utils.escape/unescape` instead of reimplementing them for each encoder.
In this order the @env would not be changed by the "on complete" callbacks, meaning that the response would not change after parallel requests finish (e.g. JSON would not be parsed). This would work def on_complete(env) env[:body].upcase! end But this wouldn't def on_complete(env) env[:body] = env[:body].upcase end