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