相关疑难解决方法(0)

如何动态删除空查询参数?

我向 API 发送一些 get 查询,当我发送空查询参数时,该 API 返回400 Bad 请求

但是,我事先并不知道哪些可选查询参数将为空。除了测试每个可选参数是否为空之外,是否有更简单的方法来动态删除空参数?

目前我正在做:

private URI getApiUrl(QueryParametersObject qpo) {
    String url = configBundle.getPropertyStr("some.api.url");
    UriComponentsBuilder builder = UriComponentsBuilder
            .fromHttpUrl(url)
            .queryParam("mandatoryParam1", qpo.getMandatoryParam1())  // MANDATORY
            .queryParam("mandatoryParam2", qpo.getMandatoryParam2());  // MANDATORY
            
    if (!qpo.getOptionalParam1().isEmpty())
        builder.queryParam("optionalParam1", qpo.getOptionalParam1());
    if (!qpo.getOptionalParam2().isEmpty())
        builder.queryParam("optionalParam2", qpo.getOptionalParam2());
    if (!qpo.getOptionalParam3().isEmpty())
        builder.queryParam("optionalParam3", qpo.getOptionalParam3());
    return builder.build().encode().toUri();
}
Run Code Online (Sandbox Code Playgroud)

当可选查询参数的数量增加时,它可能会变得相当麻烦。

java rest http

1
推荐指数
1
解决办法
4366
查看次数

标签 统计

http ×1

java ×1

rest ×1