【发布时间】:2017-01-23 20:20:00
【问题描述】:
在我的项目中,我在客户端应用程序中使用 RestTempate 来访问现有服务。服务本身返回一个有效 URI 模板列表,我尝试使用的模板看起来像
http://corpdomain.com/service{?idparam}
在运行时,它应该扩展为类似
http://corpdomain.com/service?idparam=12345
问题是,RestTemplate 的 getForObject() 不知道如何处理“{?idparam}”符号。如果我给它 URI
http://corpdomain.com/service?idparam={idparam},一切正常。但这不是服务器返回给我的 URI 模板。
你知道如何让 RestTemplate.getForObject() 在模板中使用 {?idparam} 类型表示法吗?
您知道是否有任何关于 URI 模板语法的文档吗?
我目前正在浏览 Spring 的 Java 源代码,最终应该能够找到解决方案。然而,真正困扰我的是缺乏文档或第三方信息。
提前谢谢大家!
【问题讨论】:
-
好吧,看来我知道是怎么回事了。速记符号
http://corpdomain.com/service{?idparam}不是来自任何 Spring 库,它是使用 Affordance 库 (github.com/dschulten/hydra-java) 构建的。但我仍然不明白为什么 Spring 和 Affordance 都没有尝试记录他们正在使用的 URI 模板格式。