春季如何在位置标头中同时传递路径和查询的参数?

问题描述

我正在尝试为发布请求添加位置标头。 URI构造同时包含pathquery,但是传递两个参数不会生成预期的URI。我的rest控制器如下所示(部分代码):

URI location = 
ServletUriComponentsBuilder.fromCurrentRequest()
  .path("/{guilId}")
  .query("userId={userId}")
  .buildAndExpand(dbObject.getGuildId(),dbObject.getUserId())
  .toUri();
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setLocation(location);

这将生成以下URL:

 http://localhost:8080/guilds/{guildId}/users/{guildId}?userId={userId}

但是,预期的网址如下:

http://localhost:8080/guilds/{guildId}/users?userId={userId}

可见,我在users/之后得到一个额外的ID,而不仅仅是直接获得查询参数(在额外的ID之后包含了)。我该如何克服?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)