@@ -122,17 +122,12 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
122122 MultiValueMapAdapter headers = new MultiValueMapAdapter (v1Request .getMultiValueHeaders ());
123123 httpRequest .setHeaders (headers );
124124 }
125- if (StringUtils .hasText (v1Request .getBody ())) {
126- if (v1Request .getHeaders ().get (HttpHeaders .CONTENT_TYPE )==null ) {
127- httpRequest .setContentType ("application/json" );
128- }
129- if (v1Request .isBase64Encoded ()) {
130- httpRequest .setContent (Base64 .getMimeDecoder ().decode (v1Request .getBody ()));
131- } else {
132- Charset charseEncoding = parseCharacterEncoding (v1Request .getHeaders ().get (HttpHeaders .CONTENT_TYPE ));
133- httpRequest .setContent (v1Request .getBody ().getBytes (charseEncoding ));
134- }
135- }
125+ populateContentAndContentType (
126+ v1Request .getBody (),
127+ v1Request .getHeaders ().get (HttpHeaders .CONTENT_TYPE ),
128+ v1Request .isBase64Encoded (),
129+ httpRequest
130+ );
136131 if (v1Request .getRequestContext () != null ) {
137132 httpRequest .setAttribute (RequestReader .API_GATEWAY_CONTEXT_PROPERTY , v1Request .getRequestContext ());
138133 httpRequest .setAttribute (RequestReader .ALB_CONTEXT_PROPERTY , v1Request .getRequestContext ().getElb ());
@@ -159,6 +154,12 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
159154
160155 v2Request .getHeaders ().forEach (httpRequest ::setHeader );
161156
157+ populateContentAndContentType (
158+ v2Request .getBody (),
159+ v2Request .getHeaders ().get (HttpHeaders .CONTENT_TYPE ),
160+ v2Request .isBase64Encoded (),
161+ httpRequest
162+ );
162163
163164 if (StringUtils .hasText (v2Request .getBody ())) {
164165 if (v2Request .getHeaders ().get (HttpHeaders .CONTENT_TYPE )==null ) {
@@ -197,6 +198,24 @@ private static <T> T readValue(String json, Class<T> clazz, ObjectMapper mapper)
197198 }
198199 }
199200
201+ private static void populateContentAndContentType (
202+ String body ,
203+ String contentType ,
204+ boolean base64Encoded ,
205+ ServerlessHttpServletRequest httpRequest ) {
206+ if (StringUtils .hasText (body )) {
207+ if (contentType == null ) {
208+ httpRequest .setContentType ("application/json" );
209+ }
210+ if (base64Encoded ) {
211+ httpRequest .setContent (Base64 .getMimeDecoder ().decode (body ));
212+ } else {
213+ Charset charseEncoding = parseCharacterEncoding (contentType );
214+ httpRequest .setContent (body .getBytes (charseEncoding ));
215+ }
216+ }
217+ }
218+
200219 static final String HEADER_KEY_VALUE_SEPARATOR = "=" ;
201220 static final String HEADER_VALUE_SEPARATOR = ";" ;
202221 static final String ENCODING_VALUE_KEY = "charset" ;
0 commit comments