使用 Retrofit 具有动态 URL 的 OkHttp MockWebServer

Jag*_*uar 5 android retrofit okhttp mockwebserver retrofit2

我的应用程序使用动态 URL 进行 Web 服务调用(在 Android 上)。baseUrl设置为空,我们在服务接口中传递Retrofit2 @Url参数:

public interface UserService {  
    @GET
    public Call<ResponseBody> profilePicture(@Url String url);
}
Run Code Online (Sandbox Code Playgroud)

我们事先不知道主机/域,因此 MockWebServer 无法拦截请求。获取动态 URL 初始列表的调用是在不同的屏幕中进行的。一个想法是创建一种新风格,为要使用的 URL 提供本地数据源,这是我的后备计划。

我很好奇 MockWebServer 是否有任何其他方法来帮助测试此类情况并且可以仅限于测试代码。

Jes*_*son 3

您可以使用 OkHttp 拦截器来重写主机名和端口吗?