我有一个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或Array发送到服务器?
答案 0 :(得分:5)
通过加入String
的元素构建List<Integer>
并将其作为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);