我有一些具有相同 baseUrl 的服务 url。对于某些 url,会有一些常用的参数,例如 an apiVersion
or locale
。但它们不必在每个 url 中,所以我不能将它们添加到 baseUrl。
.../api/{apiVersion}/{locale}/event/{eventId}
.../api/{apiVersion}/{locale}/venues
.../api/{apiVersion}/configuration
我不想在改造界面中添加这些参数。在改造 1 中,我做了一个拦截器,用于RequestFacade.addPathParam(..., ...)
为每个 url 填充这些公共路径参数。
对于改造 2,我似乎找不到使用 okhttp 执行此操作的正确方法。我现在看到这可能的唯一方法是HttpUrl
从Chain.request().httpUrl();
okhttp 中获取Interceptor
并自己操作那个,但我不知道这是否是最好的方法。
有没有人遇到过更好的方法来替换 okhttp 中的路径参数Interceptor
?
在撰写本文时,我使用的是 retrofit:2.0.0-beta2 和 okhttp:2.7.2。