1. 程式人生 > >OKHTTP封裝及呼叫

OKHTTP封裝及呼叫

package com.example.ok02;

import android.os.Handler;

import java.io.IOException;
import java.util.concurrent.TimeUnit;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;public class OkUtils {

    //定義變數
private static Handler mhandler
; private final OkHttpClient mclient; private static OkUtils mokUtils; //使用構造方法,初始化 private OkUtils(){ mclient=new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10,TimeUnit.SECONDS) .readTimeout(10,TimeUnit.SECONDS
) .build(); mhandler=new Handler(); } //使用單利模式暴露一個方法 public static OkUtils getInstance(){ if(mokUtils==null){ mokUtils=new OkUtils(); } return mokUtils; } //////////////////////定義介面///////////////////////// interface Fucn1{ Void onresponce(String result); } //處理請求網路成功的方法
private static void onSuccessStringData(final String datas,final Fucn1 callBack){ mhandler.post(new Runnable() { @Override public void run() { if(callBack!=null){ callBack.onresponce(datas); } } }); } //暴露外界呼叫的方法 public void asyncJsonStringByURL(final String url, final Fucn1 callBack){ final Request request=new Request.Builder().url(url).build(); mclient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { onSuccessStringData(response.body().string(),callBack); } }); } }
Mactivity中呼叫
//使用封裝的okhttp
private OkUtils okUtils=OkUtils.getInstance();
 //呼叫介面的方法
okUtils.asyncJsonStringByURL(path, new OkUtils.Fucn1() {
    @Override
public Void onresponce(String result) {
        //解析資料
Gson gson=new Gson();
        ResultDatas resultDatas = gson.fromJson(result, ResultDatas.class);
        List<ResultDatas.DataBean> data = resultDatas.getData();
        //建立介面卡
MyAdaper adaper=new MyAdaper(MainActivity.this,data);
        recyclerView.setAdapter(adaper);
        //開啟佈局管理器
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false));
        return null;
    }
});

相關推薦

OKHTTP封裝呼叫

package com.example.ok02; import android.os.Handler; import java.io.IOException; import java.util.concurrent.TimeUnit; import okhttp3.C

C++動態庫封裝呼叫

https://blog.csdn.net/zhangfuliang123/article/details/71515796   一直對動態庫的封裝理解不是很透徹,雖然之前寫過一個Demo,不過並沒有真正的理解。所以寫下來,幫助自己理解下。 1、一個程式從原始檔編譯生成可執行檔

介面封裝呼叫

                為了更好地讓應用系統進行呼叫,有的時候需要對介面進行封裝,把複雜的東西包起來,讓應用系統介面開發者感覺越簡單越好。這樣你的系統才更容易被推廣或應用。比如,現在的很多線上支付介面都提供了軟體開發包。我們也可以通過封裝來實現介面開發包,讓開發人員簡單開發,輕鬆呼叫。1.介面封裝我們

DLL函式封裝呼叫例項

動態呼叫的意思是顯式呼叫,是由使用者自己選擇呼叫哪個DLL檔案,在windows系統中,與動態連結庫呼叫相關的函式主要有3個: 1.LoadLibrary,顧名思義,該函式的作用是載入DLL檔案,因此該函式的引數就是你想要使用的DLL檔案; 2.GetProcAddress

通過dubbo+zookeeper實現服務介面的封裝呼叫

1.首先介紹兩個框架: dubbo:阿里巴巴開源的高效能的優秀服務框架,使得應用可以通過高效能的rpc(遠端呼叫)實現服務的輸出和輸入功能,可以和spring無縫銜接。 zookeeper:用來封裝複雜易出錯的關鍵服務,將簡單易用的介面和效能高效,功能穩定的

個人js學習例項-點選按鈕實現全選與反選,封裝函式呼叫前後

原始: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="wid

Lind.DDD.RedisClient~對StackExchange.Redis呼叫者的封裝多路複用技術

回到目錄 兩雄爭霸 使用StackExchange.Redis的原因是因為它開源,免費,而對於商業化的ServiceStack.Redis,它將一步步被前者取代,開源將是一種趨勢,商業化也值得被我們尊重,畢竟人家研究程式碼也不容易,做商品也很正常,當然這不是我們今天的重點,今天主要說一下對StackExc

OkHttp使用工具類封裝

單例模式,handler,介面回撥等;public class OkHttpUtils { public static final long DEFAULT_MILLISECONDS = 10_000L; private volatile static OkHttpUtils mInstanc

Android 一個改善的okHttp封裝

概述 使用 封裝 流程 ews etc 服務器 ... 進度 轉載請標明出處: http://blog.csdn.net/lmj623565791/article/details/49734867; 本文出自:【張鴻洋的博客】

Okhttp封裝、網絡層擴展

rri name 插件 oci 選擇 game ram content oat 一、概述 首先在這裏本片文章是以網絡通信封裝為主,而app開發首先重要就是網絡通信,而如今主流的async、volley、okhttp等,阿麽這麽網絡庫怎樣能做到更好封裝、

Python封裝解構

解構 python封裝及解構Python的封裝與其他語言的封裝箱不同,python中沒有裝箱的概念,一切皆對象將多個值使用逗號進行分割,本質上是返回元組In [1]: a = 1,2 In [2]: type(a)Out[2]: tuple In [3]: aOut[3]: (1, 2) 封裝在進行交換的時候

c++動態庫封裝調用(1、動態庫介紹)

oca 新版本 指令 二進制 運行時 失去 理論 load 程序 1、一個程序從源文件編譯生成可執行文件的步驟: 預編譯 --> 編譯 --> 匯編 --> 鏈接 (1)預編譯,即預處理,主要處理在源代碼文件中以“#”開始的預編譯指令,如宏展開、處理條

封裝propery的使用

調用方法 安全 int 類名 def iss clas 函數 內部使用 封裝的目的   使類中的屬性或者方法只允許在類內部使用,不允許外部對其訪問,保證數據的安全性。 封裝的方法   使屬性或者函數名改寫成:“__屬性名或者函數名”的格式,即完成了對本類屬性或函數名的隱藏。

axios的簡單封裝在組件內使用

form ase 一些事 cti 三方 return mounted mod ont /**第一步 * 配置編譯環境和線上環境之間的切換 * baseUrl: 域名地址 * routerMode: 路由模式 * imgBaseUrl: 圖片所在域名地址 * *

原生ajax封裝用法

異步 con UC end utf amp dpa read -type /* 封裝ajax函數 * @param {string}opt.type http連接的方式,包括POST和GET兩種方式 * @param {string}opt.url 發送請求的url

小程序多圖片上傳組件封裝使用

turn 服務端 view ots 鏈接 文件上傳 smo options data-   最近剛開發了小程序上傳圖片功能,為了便於後續查找,特此記錄歸總。   在實際開發過程中,圖片上傳功能是很常用的功能,所以將其封裝成組件,避免後續重復勞動力,已是不爭的事實。

Vue: axios 請求封裝設置默認域名前綴 (for Vue 2.0)

找到 檢查 evel require login word -- const 步驟 1. 實現效果 以get方法向http://192.168.32.12:8080/users 發起請求、獲取數據並進行處理 this.apiGet(‘/users‘, {}) .the

Shell之function函式的定義呼叫

文章目錄 `function`函式的定義及呼叫 `function`函式的定義 `function`函式的呼叫【位置傳參】 函式使用return返回值【位置傳參】 函式的呼叫【陣列傳參】

C++ 使用jsoncpp 封裝解析 json字串(包含複雜陣列)

#include <json/json.h> #include <string> #include <iostream> using namespace std; int main() { //std::string strValue = "{\"na

類和物件(5)—— 建構函式的分類呼叫

無引數建構函式、有引數建構函式、賦值建構函式 (3)拷貝建構函式   由已存在的物件,建立新物件。也就是說新物件,不由構造器來構造,而是由拷貝構造器來完成。拷貝構造器的格式是固定的。   #define _CRT_SECURE_NO_WARNINGS #includ