Retrofit 動態修改BaseUrl

2021-09-24 23:13:02 字數 1135 閱讀 9392

1.在網路請求介面中新增@headers

在網路請求介面中新增@headers()。

public inte***ce retrofitservice

.html")

observablegetweatherbycityid(@path("cityid") string cityid);

@headers(url_book)

@get("/v2/book/search")

observablegetbook(@query("q") string bookname);

}

對於retrofit網路請求引數的註解,可以檢視retrofit註解

2.自定義changeurlinterceptor***

public class baseurlinterceptor implements interceptor

else if ("book".equals(headervalue))

else

// 重建新的httpurl,修改需要修改的url部分

// 更換網路協議

.scheme(newbaseurl.scheme())

// 更換主機名

.host(newbaseurl.host())

// 更換埠

.port(newbaseurl.port())

.build();

// 重建這個request,通過builder.url(newfullurl).build();

// 然後返回乙個response至此結束修改

return chain.proceed(builder.url(newfullurl).build());

}return chain.proceed(request);

}}

在***中通過獲取url_name來確定要呼叫哪個url。

3.addinterceptor

private retrofithelper()

4.呼叫

正常的網路呼叫即可。

動態修改布局

在 中設定控制項大小的方法 private button mbtn mbtn button findviewbyid r.id.btn test layoutparams lp lp mbtn.getlayoutparams lp.width 100 lp.height 200 mbtn.setla...

Retrofit2 如何在請求時使用動態URL

retrofit2為動態url帶來的新的註解,在retrofit 1中迷惑的點現在只需要乙個url註解就能描述結點 endpoint 這篇文章將會展示如何利用動態結點url處理單獨的請求。retrofit 2 how to use dynamic urls for requests 使用案例情況 這...

Retrofit2 如何在請求時使用動態URL

retrofit2為動態url帶來的新的註解,在retrofit 1中迷惑的點現在只需要乙個url註解就能描述結點 endpoint 這篇文章將會展示如何利用動態結點url處理單獨的請求。retrofit 2 how to use dynamic urls for requests 使用案例情況 這...