@@ -1012,12 +1012,16 @@ private boolean isPostBody(Map<String, String> headerParams) {
10121012 return false ;
10131013 }
10141014
1015+ private void updateQueryParams (List <Pair > queryParams ,String [] param ){
1016+ queryParams .add (new Pair ("Action" , param [1 ]));
1017+ queryParams .add (new Pair ("Version" , param [2 ]));
1018+ }
1019+
10151020 private ServiceInfo addPairAndGetServiceInfo (String path , List <Pair > queryParams , Map <String , String > headerParams ) {
10161021 String [] param = path .split ("/" );
10171022
10181023 if (!isApplicationJsonBody (headerParams ) && !isPostBody (headerParams )) {
1019- queryParams .add (new Pair ("Action" , param [1 ]));
1020- queryParams .add (new Pair ("Version" , param [2 ]));
1024+ updateQueryParams (queryParams ,param );
10211025 }
10221026 return new ServiceInfo (param [3 ], param [4 ]);
10231027 }
@@ -1046,6 +1050,7 @@ private boolean convertResponseBody(String source,StringBuilder stringBuilder) {
10461050 private void buildSimpleRequest (Object body , List <Pair > queryParams , Map <String , String > headerParams , StringBuilder builder , String chain ) throws Exception {
10471051 if (isApplicationJsonBody (headerParams )) {
10481052 builder .append (json .serialize (body ));
1053+ return ;
10491054 }
10501055 Class <?> clazz = body .getClass ();
10511056
@@ -1182,8 +1187,14 @@ public Request buildRequest(String path, String method, List<Pair> queryParams,
11821187 formParams .put (pair .getName (), pair .getValue ());
11831188 }
11841189 reqBody = buildRequestBodyFormEncoding (formParams );
1190+ // fix action & version
1191+ queryParams .clear ();
1192+ updateQueryParams (queryParams ,path .split ("/" ));
11851193 } else if ("multipart/form-data" .equals (contentType )) {
11861194 reqBody = buildRequestBodyMultipart (formParams );
1195+ // fix action & version
1196+ queryParams .clear ();
1197+ updateQueryParams (queryParams ,path .split ("/" ));
11871198 } else if (body == null ) {
11881199 if ("DELETE" .equals (method )) {
11891200 // allow calling DELETE without sending a request body
@@ -1192,8 +1203,14 @@ public Request buildRequest(String path, String method, List<Pair> queryParams,
11921203 // use an empty request body (for POST, PUT and PATCH)
11931204 reqBody = RequestBody .create (MediaType .parse (contentType ), "" );
11941205 }
1206+ // fix action & version
1207+ queryParams .clear ();
1208+ updateQueryParams (queryParams ,path .split ("/" ));
11951209 } else {
11961210 reqBody = serialize (body , contentType );
1211+ // fix action & version
1212+ queryParams .clear ();
1213+ updateQueryParams (queryParams ,path .split ("/" ));
11971214 }
11981215 //sign
11991216 updateParamsForAuth (authNames , queryParams , headerParams , serviceInfo , getPayload (contentType ,
0 commit comments