为了将我的 Java SpringBoot 应用程序与常规 REST 端点集成,我使用此方法来准备 URI
import org.springframework.web.util.UriComponentsBuilder;
private URI prepareEndpointUrl(MyQuery q) {
return UriComponentsBuilder.fromHttpUrl(apiConfiguration.getLeadTimesPreCalcRestEndpointUrl())
.queryParam(PARAM1, q.getCountryFrom())
.queryParam(PARAM2, q.getZipCodeFrom())
.queryParam(PARAM3, q.getCountryTo())
.queryParam(PARAM4, q.getZipCodeTo())
.build().toUri();
}
URL 通过参数传递给 UriComponentsBuilder 作为第一个参数,具体取决于我的应用程序运行的环境。
适用于所有较低环境,但在产品中抛出 java.lang.IllegalArgumentException。
ERROR @ o.a.c.c.C.[.[.[.[dispatcherServlet] | Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: [ https://A_VALID_HOST/api/XX-YY.json] is not a valid HTTP URL] with root cause
java.lang.IllegalArgumentException: [ https://A_VALID_HOST/api/XX-YY.json] is not a valid HTTP URL
我用谷歌搜索了这个,显然它可能与编码 url/参数有关,但我没有这样做。显然这个环境中有些东西是不同的,我不知道如何开始寻找什么。
有什么想法吗?
最佳答案
正如上面 Stephen 所指出的,问题是我的 URL 中 http 之前的空格。
显然,没有修剪;谢谢大家。
关于java - 为什么 Spring UriComponentsBuilder 抛出 java.lang.IllegalArgumentException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60846734/