When pass the URL-encoded Body to API Gateway, will get the following results:
1. The context variable "$ {request.mainpart}" returns a URL-encoded value.
2. The context variable "$ {request.http.parameter. (Parameter name)}" returns the decoded value.
Why is "$ {request.http.parameter. (Parameter name)}" decoded?
Release : 10.0
Component : API GATEWAY
This is by design based on usage of the context variables.
if you're using the request.http.parameter.(parametername) context variables, you are presumably interested in the actual value, not URL-encoded value, because these variables are for providing info related to the http parameters
if you're using request.mainpart, you are presumably interested in the unaltered request content. this variable might be used in later services downstream so you want to control whether you want to decode or not, not automatically decode (edited)