38
38
import java .util .HashMap ;
39
39
import java .util .Iterator ;
40
40
import java .util .List ;
41
+ import java .util .ListIterator ;
41
42
import java .util .Map ;
42
43
import java .util .Scanner ;
43
44
import javax .net .ssl .HttpsURLConnection ;
@@ -276,17 +277,16 @@ private static List<Parameter> flattenParams(Map<String, Object> params)
276
277
private static List <Parameter > flattenParamsList (List <Object > params , String keyPrefix )
277
278
throws InvalidRequestException {
278
279
List <Parameter > flatParams = new ArrayList <Parameter >();
279
- Iterator <?> it = ((List <?>) params ).iterator ();
280
- String newPrefix = String .format ("%s[]" , keyPrefix );
281
-
280
+ ListIterator <?> it = ((List <?>) params ).listIterator ();
282
281
// Because application/x-www-form-urlencoded cannot represent an empty
283
282
// list, convention is to take the list parameter and just set it to an
284
- // empty string. (e.g. A regular list might look like `a[]=1&b[]=2`.
283
+ // empty string. (e.g. A regular list might look like `a[0 ]=1&b[1 ]=2`.
285
284
// Emptying it would look like `a=`.)
286
285
if (params .isEmpty ()) {
287
286
flatParams .add (new Parameter (keyPrefix , "" ));
288
287
} else {
289
288
while (it .hasNext ()) {
289
+ String newPrefix = String .format ("%s[%d]" , keyPrefix , it .nextIndex ());
290
290
flatParams .addAll (flattenParamsValue (it .next (), newPrefix ));
291
291
}
292
292
}
@@ -297,17 +297,17 @@ private static List<Parameter> flattenParamsList(List<Object> params, String key
297
297
private static List <Parameter > flattenParamsArray (Object [] params , String keyPrefix )
298
298
throws InvalidRequestException {
299
299
List <Parameter > flatParams = new ArrayList <Parameter >();
300
- String newPrefix = String .format ("%s[]" , keyPrefix );
301
300
302
301
// Because application/x-www-form-urlencoded cannot represent an empty
303
302
// list, convention is to take the list parameter and just set it to an
304
- // empty string. (e.g. A regular list might look like `a[]=1&b[]=2`.
303
+ // empty string. (e.g. A regular list might look like `a[0 ]=1&b[1 ]=2`.
305
304
// Emptying it would look like `a=`.)
306
305
if (params .length == 0 ) {
307
306
flatParams .add (new Parameter (keyPrefix , "" ));
308
307
} else {
309
- for (Object item : params ) {
310
- flatParams .addAll (flattenParamsValue (item , newPrefix ));
308
+ for (int i = 0 ; i < params .length ; i ++) {
309
+ String newPrefix = String .format ("%s[%d]" , keyPrefix , i );
310
+ flatParams .addAll (flattenParamsValue (params [i ], newPrefix ));
311
311
}
312
312
}
313
313
@@ -637,7 +637,7 @@ private static StripeResponse getMultipartStripeResponse(
637
637
"Must have read permissions on file for key "
638
638
+ key + "." , null , null , null , 0 , null );
639
639
}
640
- multipartProcessor .addFileField (key , currentFile .getName (),
640
+ multipartProcessor .addFileField (key , currentFile .getName (),
641
641
new FileInputStream (currentFile ));
642
642
} else if (value instanceof InputStream ) {
643
643
InputStream inputStream = (InputStream ) value ;
0 commit comments