首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Retrofit @Url不会覆盖BaseUrl

Retrofit @Url不会覆盖BaseUrl
EN

Stack Overflow用户
提问于 2018-07-17 23:08:34
回答 2查看 4.6K关注 0票数 2

您好,我正在尝试覆盖来自一个特定api调用的baseUrl,当使用@Url作为api方法的参数时,它似乎不起作用。

下面是我的Api类方法

代码语言:javascript
运行
复制
@POST
    fun getUserDetails(@Body body: request, @Url authUrl : String): Single<Response<ResponseData>>

对cals进行编码并发出请求

代码语言:javascript
运行
复制
 private fun getApi(): Api {
        val gson = GsonBuilder().setLenient().create()
        val httpClient = myNetworkHelper.createHttpClient()
        val retrofit = Retrofit.Builder()
                .baseUrl("http://defaultBaseUrl")
                .client(httpClient)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build()

        return retrofit.create(Api::class.java)
    }

 override fun getUserDetails(someRequestData, "http://dynamic/getuserDetails): Single<Response<ResponseData>> {
        return getApi().getUserDetails(body, url)
    }

上面的结果是向这个url发出一个请求。

代码语言:javascript
运行
复制
http://defaultBaseUrl/http://dynamic/getuserDetails

而不是:

代码语言:javascript
运行
复制
http://dynamic/getuserDetails
EN

Stack Overflow用户

发布于 2018-07-17 23:25:29

这是来自Retrofit @GET annotation的文档:

代码语言:javascript
运行
复制
@Documented 
@Target(METHOD) 
@Retention(RUNTIME) 
public @interface GET {   
/**
* A relative or absolute path, or full URL of the endpoint. This value is optional if the first
* parameter of the method is annotated with {@link Url @Url}.
* <p>    
* See {@linkplain retrofit2.Retrofit.Builder#baseUrl(HttpUrl) base URL} for details of how    
* this is resolved against a base URL to create the full endpoint URL.
*/   
    String value() default ""; 
}

所以应该把@Url作为第一个参数,所以我认为这是可行的:

代码语言:javascript
运行
复制
@POST
fun getUserDetails(@Url authUrl: String, @Body body: request): Single<Response<ResponseData>>
票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51384810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档