Apache Http UrlBuilder 从 URL 剥离 API 版本
Apache Http UrlBuilder stripping API version from URL
全部,
我在这样的配置中定义了我的基础 url
foobar.baseurl = https://api.foobar.com/v3/reporting/
这是作为我的 Spring bean
的构造函数参数传递的
<bean id="foobarUriBuilder" class="org.apache.http.client.utils.URIBuilder">
<constructor-arg value="${foobar.baseurl}"/>
</bean>
一切正常,但是 URLBuilder 删除了 /v3/reporting
部分,然后当我尝试做这样的事情时。
//Set URI path and query params
uriBuilder.setPath("/fooReports")
.setParameter("type_of_foo", FOO_TYPE);
所以请求变成这样
自然会给出 HTTP 404。
那么我如何阻止 URIBuilder 剥离我的 URL 的一部分,这样我就有了正确的 URL 如下?
https://api.foobar.com/v3/reporting/fooReports?type_of_foo=bar
/v3/reporting
是(原始)路径的一部分。当您 设置 其他路径时,在本例中 /fooReports
,它会被覆盖。
您可以尝试用
组成新路径
final String originalPath = uriBuilder.getPath();
uriBuilder.setPath(originalPath + "/fooReports")
.setParameter("type_of_foo", FOO_TYPE);
全部,
我在这样的配置中定义了我的基础 url
foobar.baseurl = https://api.foobar.com/v3/reporting/
这是作为我的 Spring bean
的构造函数参数传递的<bean id="foobarUriBuilder" class="org.apache.http.client.utils.URIBuilder">
<constructor-arg value="${foobar.baseurl}"/>
</bean>
一切正常,但是 URLBuilder 删除了 /v3/reporting
部分,然后当我尝试做这样的事情时。
//Set URI path and query params
uriBuilder.setPath("/fooReports")
.setParameter("type_of_foo", FOO_TYPE);
所以请求变成这样
自然会给出 HTTP 404。
那么我如何阻止 URIBuilder 剥离我的 URL 的一部分,这样我就有了正确的 URL 如下?
https://api.foobar.com/v3/reporting/fooReports?type_of_foo=bar
/v3/reporting
是(原始)路径的一部分。当您 设置 其他路径时,在本例中 /fooReports
,它会被覆盖。
您可以尝试用
组成新路径final String originalPath = uriBuilder.getPath();
uriBuilder.setPath(originalPath + "/fooReports")
.setParameter("type_of_foo", FOO_TYPE);