OkHttpClient源碼分析(一)—— 同步、異步請求分析和Dispatcher的任務調度

OkHttpClient同步請求的執行流程和源碼分析

同步請求示例

OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();
        Request request = new Request.Builder().url("https://www.baidu.com").get().build();
        Call call = okHttpClient.newCall(request);
        try {
            Response response = call.execute();
            Log.e(TAG,"response: " + response.body().string());
        } catch (IOException e) {
            e.printStackTrace();
        }

同步請求的步驟

  1. 創建OkHttpClient對象和Request對象,均是採用Builder模式創建,構建者(Builder)設計模式(又叫生成器設計模式)

  2. 將Request封裝成Call對象

  3. 調用Call的execute()方法發送同步請求,發送請求後,就會進入阻塞狀態,直到收到響應。

一、(1)OkHttpClient Builder對象分析

public Builder() {
      dispatcher = new Dispatcher();
      protocols = DEFAULT_PROTOCOLS;
      connectionSpecs =
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章