二次封裝OKHttp網路框架(1)

2021-08-07 03:20:20 字數 2022 閱讀 1472

1. 框架功能簡介:暫時只有get、post兩個請求

2. 請求的主要流程和區別:

2.1 get請求:

(1)建立請求客戶的 okhttpclient物件

(2)建立請求構建器 request.bulder builder = new request.builder().url(...). build();

(3)建立請求物件:request request = builder.build();

(3)建立請求任務 call call

(4)發起非同步請求:call.enqueue(new callback()); 

2.2 post請求

(1)建立請求客戶的 okhttpclient物件

(2)建立請求構建器 request.builder builder = new request.builder().url(...). build();

(3)建立表單實體構建器:formbody.builder mformbuilder

(4)建立表單實體物件:formbody body

(5)建立請求物件:request request = builder.post(body);

(6)建立請求任務:call call

(7)發起非同步任務:call.enqueue(new callback());

2.3 兩者區別

請求構建器 builder 與請求物件request之間,post需要建立請求實體,並在請求實體中新增引數——封裝的框架需要考慮兩者區別,處理好復用**和分別處理

3. **

*okhttp的二次封裝

*get請求、post請求

* 客戶端非同步發起請求,(url(), targetclass(), 呼叫介面等)——okutils通過handler返回結果

public class okutils

// 構造方法,單例模式初始化mokhttpclient

pubic okutils(context context) }

}inithandler(context); }

private void inithandler(context context)       

break;

case result_error:

if(mlistener != null && msg.obj != null)         

break; }

} };

}// 位址列請求

public okutilsurl(stringbuilder url)

// 建立post表單body構建器

public okutilspost()

// 目標解析類

public okutilstargetclass(class claz)

// 新增引數

public okutilsaddparam(string key, string value)elseelse

} return this; }

public void execute(oncompletelistener listener)

if( murl.indexof("?" == -1)

if( mclaz == null)

// 建立請求構建器

二次封裝OKHttp網路框架(1)

1.框架功能簡介 暫時只有get post兩個請求 2.請求的主要流程和區別 2.1 get請求 1 建立請求客戶的 okhttpclient物件 2 建立請求構建器 request.bulder builder new request.builder url build 3 建立請求物件 requ...

Okhttp的二次封裝

首先,我們看乙個簡單的okhttp用法 trycatch ioexception e 從裡面思考我們可以看出我們需要封裝的內容 request.builder,request,call,首先看builder的封裝,以表單請求的builder為例,首先構造乙個所有builder的父類 header,p...

二次封裝函式 1

題目描述 已知函式 fn 執行需要 3 個引數。請實現函式 partial,呼叫之後滿足如下條件 1 返回乙個函式 result,該函式接受乙個引數 2 執行 result str3 返回的結果與 fn str1,str2,str3 一致 1 2 function partial fn,str1,s...