OkHttps 簡單示例

2020-07-22 15:15 更新

構建 HTTP

HTTP http = HTTP.builder().build();

  以上代碼構建了一個最簡單的HTTP實例,它擁有以下三個方法:

  • async(String url) 開始一個異步請求 (內(nèi)部通過一個HTTP單例實現(xiàn))
  • async() 開始一個異步HTTP任務,使用該方法必須在構建時設置 BaseUrl
  • sync(String url) 開始一個同步請求 (內(nèi)部通過一個HTTP單例實現(xiàn))
  • sync() 開始一個同步HTTP任務,使用該方法必須在構建時設置 BaseUrl
  • cancel(String tag) 按標簽取消請求(內(nèi)部通過一個HTTP單例實現(xiàn))
  • cancelAll() 取消所有HTTP任務,包括同步和異步(內(nèi)部通過一個HTTP單例實現(xiàn))
  • request(Request request) OkHttp 原生請求 (該請求不經(jīng)過 預處理器)
  • webSocket(Request request, WebSocketListener listener) WebSocket通訊

  為了使用方便,在構建的時候,我們更愿意指定一個BaseUrl(請參見5.1 設置 BaseUrl):

HTTP http = HTTP.builder()
        .baseUrl("http://api.demo.com")
        .build();

  為了簡化文檔,下文中出現(xiàn)的http均是在構建時設置了BaseUrlHTTP實例。

同步請求

  使用方法sync(String url)開始一個同步請求:

List<User> users = http.sync("/users") // http://api.demo.com/users
        .get()                         // GET請求
        .getBody()                     // 獲取響應報文體
        .toList(User.class);           // 得到目標數(shù)據(jù)

  方法sync返回一個同步HttpTask,可鏈式使用。

異步請求

  使用方法async(String url)開始一個異步請求:

http.async("/users/1")                //  http://api.demo.com/users/1
        .setOnResponse((HttpResult result) -> {
            // 得到目標數(shù)據(jù)
            User user = result.getBody().toBean(User.class);
        })
        .get();                       // GET請求

  方法async返回一個異步HttpTask,可鏈式使用。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號