使用 RestTemplate - 如何将参数中的列表或数组从客户端传递到服务器
Using RestTemplate - how to pass List or Array in parameter from client to server
我有一个 List<Integer>
想在参数中发送到服务器,有什么方法 Spring 对此提供支持吗?
我试过使用下面的代码,
restTemplate.exchange("http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId={cartItemsId[]}",
HttpMethod.POST, httpEntity, Void.class, ArrayUtils.toPrimitive(cartItemsId.toArray(new Integer[cartItemsId.size()])));
但它会向服务器发送如下内容:
http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId=%5BI@18275d8c
如果我使用也会出现同样的问题:
restTemplate.exchange("http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId={cartItemsId[]}",
HttpMethod.POST, httpEntity, Void.class, cartItemsId);
或
restTemplate.exchange("http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId={cartItemsId[]}",
HttpMethod.POST, httpEntity, Void.class, cartItemsId.toArray(new Integer[cartItemsId.size()]));
有什么方法可以使用参数将此列表或数组发送到服务器吗?
通过连接 List<Integer>
的元素构造一个 String
并将其作为 uri 变量提供。
String listOfIds = cartItemsId.stream().map(Object::toString).collect(Collectors.joining(","));
restTemplate.exchange("http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId={ids}",
HttpMethod.POST, httpEntity, Void.class, listOfIds);
我有一个 List<Integer>
想在参数中发送到服务器,有什么方法 Spring 对此提供支持吗?
我试过使用下面的代码,
restTemplate.exchange("http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId={cartItemsId[]}",
HttpMethod.POST, httpEntity, Void.class, ArrayUtils.toPrimitive(cartItemsId.toArray(new Integer[cartItemsId.size()])));
但它会向服务器发送如下内容:
http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId=%5BI@18275d8c
如果我使用也会出现同样的问题:
restTemplate.exchange("http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId={cartItemsId[]}",
HttpMethod.POST, httpEntity, Void.class, cartItemsId);
或
restTemplate.exchange("http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId={cartItemsId[]}",
HttpMethod.POST, httpEntity, Void.class, cartItemsId.toArray(new Integer[cartItemsId.size()]));
有什么方法可以使用参数将此列表或数组发送到服务器吗?
通过连接 List<Integer>
的元素构造一个 String
并将其作为 uri 变量提供。
String listOfIds = cartItemsId.stream().map(Object::toString).collect(Collectors.joining(","));
restTemplate.exchange("http://xxx.xx.xx.xx:8081/api/cart-items?cartItemsId={ids}",
HttpMethod.POST, httpEntity, Void.class, listOfIds);