接口是这样的
@DeleteMapping
@ApiOperation("删除数据")
public R<Boolean> delete(@RequestParam("idList") List<Long> idList) {
return success(this.jobJdbcDatasourceService.removeByIds(idList));
}
我的调用方式是这样的
@Override
public void deleteDataSource(List<String> ids) {
if (CollectionUtils.isEmpty(ids)){
return;
}
List<Long> datasourceIds = ids.stream().map(Long::parseLong).collect(Collectors.toList());
MultiValueMap<String,Object> params = new LinkedMultiValueMap<>();
params.add("idList",datasourceIds);
HttpEntity<MultiValueMap<String,Object>> entity = new HttpEntity<>(params,new HttpHeaders());
ResponseEntity<DataXResponse> exchange = restTemplate.exchange(adminServer + dataSourcePath,HttpMethod.DELETE,entity,DataXResponse.class);
boolean isSuccess = this.handleResponse(exchange,Boolean.class);
if (!isSuccess){
throw new FastdataException(FastdataPlatErrorCode.REST_CALL_FAILED.getCode(),"删除失败");
}
}
然后服务端报错了
Caused by: java.lang.NumberFormatException: For input string: "[12]"
意思就是需要一个 list,但是接受到一个 string
有大哥遇到过这样的情况吗
1
ouyc 2021-03-25 12:29:16 +08:00 via Android 1
试试传一个用 , 隔开的字符串表示的 list
|
2
hantsy 2021-03-25 13:38:09 +08:00
标准的 Uri 这种参数传递应该都是支持三种格式的。
1. uri?a=1&a=2&a=3 2. uri?a=1,2,3 3. uri?a[]=1&a[]=2&a[]=3 如果你的生成 URI 不是的话,肯定会有问题。 |
3
hantsy 2021-03-25 13:39:33 +08:00
|
7
ouyc 2021-03-29 16:19:18 +08:00 via Android
|