HTTP http = HTTP.builder().build();
以上代碼構(gòu)建了一個(gè)最簡(jiǎn)單的HTTP
實(shí)例,它擁有以下三個(gè)方法:
async(String url)
開(kāi)始一個(gè)異步請(qǐng)求 (內(nèi)部通過(guò)一個(gè)HTTP
單例實(shí)現(xiàn))async()
開(kāi)始一個(gè)異步HTTP任務(wù),使用該方法必須在構(gòu)建時(shí)設(shè)置 BaseUrlsync(String url)
開(kāi)始一個(gè)同步請(qǐng)求 (內(nèi)部通過(guò)一個(gè)HTTP
單例實(shí)現(xiàn))sync()
開(kāi)始一個(gè)同步HTTP任務(wù),使用該方法必須在構(gòu)建時(shí)設(shè)置 BaseUrlcancel(String tag)
按標(biāo)簽取消請(qǐng)求(內(nèi)部通過(guò)一個(gè)HTTP
單例實(shí)現(xiàn))cancelAll()
取消所有HTTP任務(wù),包括同步和異步(內(nèi)部通過(guò)一個(gè)HTTP
單例實(shí)現(xiàn))request(Request request)
OkHttp 原生請(qǐng)求 (該請(qǐng)求不經(jīng)過(guò) 預(yù)處理器)webSocket(Request request, WebSocketListener listener)
WebSocket通訊
為了使用方便,在構(gòu)建的時(shí)候,我們更愿意指定一個(gè)BaseUrl
(請(qǐng)參見(jiàn)5.1 設(shè)置 BaseUrl):
HTTP http = HTTP.builder()
.baseUrl("http://api.demo.com")
.build();
為了簡(jiǎn)化文檔,下文中出現(xiàn)的http
均是在構(gòu)建時(shí)設(shè)置了BaseUrl
的HTTP
實(shí)例。
使用方法sync(String url)
開(kāi)始一個(gè)同步請(qǐng)求:
List<User> users = http.sync("/users") // http://api.demo.com/users
.get() // GET請(qǐng)求
.getBody() // 獲取響應(yīng)報(bào)文體
.toList(User.class); // 得到目標(biāo)數(shù)據(jù)
方法sync
返回一個(gè)同步HttpTask
,可鏈?zhǔn)绞褂谩?/p>
使用方法async(String url)
開(kāi)始一個(gè)異步請(qǐng)求:
http.async("/users/1") // http://api.demo.com/users/1
.setOnResponse((HttpResult result) -> {
// 得到目標(biāo)數(shù)據(jù)
User user = result.getBody().toBean(User.class);
})
.get(); // GET請(qǐng)求
方法async
返回一個(gè)異步HttpTask
,可鏈?zhǔn)绞褂谩?/p>
更多建議: