Apache Http UrlBuilder从URL中剥离API版本



全部,

我在配置中定义了我的基本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);

所以请求变成了这个

https://api.foobar.com/fooReports?type_of_foo=bar

这自然会产生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);

相关内容

  • 没有找到相关文章

最新更新