gpt4 book ai didi

java - URIBuilder 和列表查询参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:39:32 26 4
gpt4 key购买 nike

我正在使用 apache URIBuilder 为 Rest 服务的 GET 方法 构建查询字符串。

@RequestMapping(value="/remote") 
public Return getTest(Ordine ordine) throws Exception{
...
}

这是输入对象:

public class Ordine{    
private List<String> codici;
//..get...set..
}

我不明白如何将这个字符串列表设置为查询参数。

我尝试设置参数两次:

URIBuilder builder = new URIBuilder()
.setHost("localhost")
.setPort(8080)
.setScheme("http")
.setPath("/remote")
.setParameter("codici", codicilist.get(0))
.setParameter("codici", codicilist.get(1));

但是第一个参数会被第二个参数覆盖。然后我尝试在参数名称中附加 []:

URIBuilder builder = new URIBuilder()
.setHost("localhost")
.setPort(8080)
.setScheme("http")
.setPath("/remote")
.setParameter("codici[]", codicilist.get(0))
.setParameter("codici[]", codicilist.get(1));

但它只是简单地以名称“codici[]”发送并且第一个参数被覆盖。然后我尝试了一个逗号分隔值:

URIBuilder builder = new URIBuilder()
.setHost("localhost")
.setPort(8080)
.setScheme("http")
.setPath("/remote")
.setParameter("codici", String.join(",",codicilist));

但如果失败...我该如何设置参数列表?

最佳答案

您可以使用 addParameters方法。

URIBuilder builder = new URIBuilder()
.setHost("localhost")
.setPort(8080)
.setScheme("http")
.setPath("/remote").addParameters(buildParamList())

然后使用辅助方法获取所有 codici 参数值,该方法将构建 NameValuePair 对列表。

private List<NameValuePair> buildParamList() {
List<NameValuePair> output = new ArrayList<>();
for (String string : codici) {
output.add(new BasicNameValuePair("codici", string));
}
return output;
}

因此您将获得类似于 http://localhost:8080/remote?codici=codici1&codici=codici2&codici=codici3 的输出假定 codici 列表包含 codici1codici2codici3

关于java - URIBuilder 和列表查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35695586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com